Traitement Y / n avec bash, Python et Go

Un processus qui affiche «[y / n]» et demande des instructions de confirmation et de cible, ce qui est souvent utilisé lors de la création d'un petit outil CLI. Il y a trois façons de le faire: Go, Python et bash.

Que fais tu Si vous demandez «est-ce que ça va?» Et répondez seulement Non (n), «oh non» sera affiché, sinon il sera affiché comme «ouais bien».

bash

#!/bin/bash

read -p "are you okay?[Y/n]" ans
if [ "$ans" = "n" ]; then
  echo "oh no."
else
  echo "yeah good."
fi

Utilisez read, lisez-le simplement, puis écrivez le traitement correspondant. read le divise avec un espace blanc et le stocke dans ans. À ce moment-là, les espaces blancs avant et arrière ont été supprimés.

Python

from sys import stdin

print "are you okay?[Y/n]"
ans = stdin.readline()

if ans.strip() == "n":
    print "oh no."
else:
    print "yeah good."

C'est presque la même chose que bash, mais une différence est que la chaîne de caractères lue par readline () contient une pause à la fin. Cette fois, il est supprimé avec strip (), mais sinon, utilisez uniquement la fin avec rstrip () etc. Si vous comparez les chaînes de caractères telles quelles, les sauts de ligne ne correspondent pas, ce qui entraîne un mouvement involontaire.

Go

package main

import (
	"bufio"
	"fmt"
	"os"
	"strings"
)

func main() {
	fmt.Println("are you okay?[Y/n]")
	reader := bufio.NewReader(os.Stdin)

	ans, err := reader.ReadString('\n')
	if err != nil {
		fmt.Print("input err:", err)
		os.Exit(1)
	}

	if strings.TrimSpace(ans) == "n" {
		fmt.Println("oh no.")
	} else {
		fmt.Println("yeah good.")
	}
}

Comme prévu, il sera plus long que bash et Python car vous écrivez la gestion des principaux et des erreurs. Comme Python, Go inclut également des sauts de ligne, supprimez-le de manière appropriée avec strings.TrimSpace () ou strings.TrimRight ().

Recommended Posts

Traitement Y / n avec bash, Python et Go
Traitement multithread en python
Implémenter la récurrence et l'exploration commémoratives dans Python and Go
Traitement de texte avec Python
Traitement des requêtes en Python
Traitement pleine largeur et demi-largeur des données CSV en Python
Récapitulatif du traitement de la date en Python (datetime et dateutil)
Traitement asynchrone (threading) en python
Pile et file d'attente en Python
Collection de traitement d'image en Python
Unittest et CI en Python
Utilisation du mode Python dans le traitement
Traitement du signal en Python (1): transformée de Fourier
Paquets qui gèrent le MIDI avec Python midi et pretty_midi
Différence entre == et est en python
Afficher les photos en Python et html
Algorithme de tri et implémentation en Python
100 Language Processing Knock Chapitre 1 en Python
Manipuler des fichiers et des dossiers en Python
À propos de Python et Cython dtype
Vérifiez et déplacez le répertoire en Python
Chiffrement avec Python: IND-CCA2 et RSA-OAEP
Hashing de données en R et Python
cout << "Hello, World! \ N" en python
Synthèse de fonctions et application en Python
Exporter et exporter des fichiers en Python
mappe de traitement de chaîne python et lambda
Inverser le pseudonyme plat et le katakana en Python2.7
Lire et écrire du texte en Python
[GUI en Python] Menu PyQt5 et barre d'outils-
Créer et lire des paquets de messages en Python
traitement pour utiliser les données notMNIST en Python (et essayé de les classer)
Chevauchement d'expressions régulières en Python et Java
Dans Python 3.8, pow (n, -1, 1000000007) est meilleur que pow (n, 1000000007 --2, 1000000007)
Différence d'authenticité entre Python et JavaScript
Les modules et packages en Python sont des "espaces de noms"
Évitez les boucles imbriquées en PHP et Python
Cisco Catalyst IOS-Python et Bash sur XE
Communication socket et traitement multi-thread par Python
Modulation et démodulation AM avec Python Partie 2
Implémenter et comprendre l'arborescence de recherche d'union dans Go
différence entre les instructions (instructions) et les expressions (expressions) en Python
Valeurs authentiques et vecteurs propres: Algèbre linéaire en Python <7>
Module d'implémentation de file d'attente et Python "deque"
Graphique à lignes pliées et ligne d'échelle en python
Implémenter le filtre FIR en langage Python et C
Différences entre la syntaxe Python et Java
Vérifier et recevoir le port série en Python (vérification du port)
Comparer la grammaire de base de Python et Go d'une manière facile à comprendre
Rechercher et lire des vidéos YouTube avec Python
Différence entre @classmethod et @staticmethod en Python
Différence entre append et + = dans la liste Python
Différence entre non local et global en Python
Ecrire le fichier O_SYNC en C et Python
Gérer les "années et mois" en Python
Extraire tous les n éléments d'un tableau (liste) en Python et Ruby
Lire et écrire des fichiers JSON avec Python
Représentez facilement des données graphiques dans le shell et Python
Rechercher et vérifier la matrice inverse en Python
Indépendance et base linéaires: Algèbre linéaire en Python <6>
Appelez sudo en Python et mot de passe à saisie automatique