J / N-Verarbeitung mit Bash, Python und Go

Ein Prozess, der "[j / n]" anzeigt und Bestätigungs- und Zielanweisungen auffordert, der häufig beim Erstellen eines kleinen CLI-Tools verwendet wird. Es gibt drei Möglichkeiten: Go, Python und Bash.

Was machst du Wenn Sie fragen, ob es Ihnen gut geht, und nur mit Nein (n) antworten, wird "Oh nein" angezeigt, andernfalls wird "Ja, gut" angezeigt.

--Nachricht anzeigen

bash

#!/bin/bash

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

Verwenden Sie "Lesen", lesen Sie es einfach und schreiben Sie dann die Verarbeitung dafür. read teilt es mit Leerzeichen und speichert es in ans. Zu diesem Zeitpunkt wurden die vorderen und hinteren Leerzeichen entfernt.

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."

Es ist fast dasselbe wie bash, außer dass die von readline () gelesene Zeichenfolge am Ende einen Zeilenumbruch enthält. Dieses Mal wird es zusammen mit "strip ()" entfernt, aber wenn nicht, verwenden Sie nur das Ende mit "rstrip ()" usw. Wenn Sie die Zeichenfolgen so vergleichen, wie sie sind, stimmen die Zeilenumbrüche nicht überein, was zu unbeabsichtigten Bewegungen führt.

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.")
	}
}

Wie erwartet ist es länger als Bash und Python, da Sie die Haupt- und Fehlerbehandlung schreiben. Wie Python enthält auch Go Zeilenumbrüche. Löschen Sie es daher entsprechend mit "strings.TrimSpace ()" oder "strings.TrimRight ()".

Recommended Posts

J / N-Verarbeitung mit Bash, Python und Go
Multithread-Verarbeitung in Python
Implementieren Sie die Wiederholung und Erkundung von Gedenkstätten in Python und Go
Textverarbeitung mit Python
Verarbeitung in Python beenden
Verarbeitung von CSV-Daten in voller und halber Breite in Python
Zusammenfassung der Datumsverarbeitung in Python (Datum / Uhrzeit und Datum)
Asynchrone Verarbeitung (Threading) in Python
Stapel und Warteschlange in Python
Bildverarbeitungssammlung in Python
Unittest und CI in Python
Verwenden des Python-Modus in der Verarbeitung
Signalverarbeitung in Python (1): Fourier-Transformation
Pakete, die MIDI mit Python Midi und Pretty_Midi verarbeiten
Unterschied zwischen == und ist in Python
Zeigen Sie Fotos in Python und HTML an
Sortieralgorithmus und Implementierung in Python
100 Sprachverarbeitung Knock Kapitel 1 in Python
Bearbeiten Sie Dateien und Ordner in Python
Über Python und Cython dtype
Überprüfen und verschieben Sie das Verzeichnis in Python
Verschlüsselung mit Python: IND-CCA2 und RSA-OAEP
Hashing von Daten in R und Python
cout << "Hallo Welt! \ N" in Python
Funktionssynthese und Anwendung in Python
Exportieren und Ausgeben von Dateien in Python
Python String Processing Map und Lambda
Reverse Flat Pseudonym und Katakana in Python2.7
Lesen und Schreiben von Text in Python
[GUI in Python] PyQt5-Menü und Symbolleiste-
Erstellen und lesen Sie Messagepacks in Python
Verarbeitung zur Verwendung von notMNIST-Daten in Python (und versucht, sie zu klassifizieren)
Überlappende reguläre Ausdrücke in Python und Java
In Python 3.8 sieht pow (n, -1, 1000000007) besser aus als pow (n, 1000000007 - 2, 1000000007).
Unterschied in der Authentizität zwischen Python und JavaScript
Module und Pakete in Python sind "Namespaces"
Vermeiden Sie verschachtelte Schleifen in PHP und Python
Cisco Catalyst IOS-Python und Bash unter XE
Socket-Kommunikation und Multithread-Verarbeitung durch Python
AM-Modulation und Demodulation mit Python Part 2
Implementieren und verstehen Sie den Union-Find-Baum in Go
Unterschied zwischen Anweisungen (Anweisungen) und Ausdrücken (Ausdrücken) in Python
Echte Werte und Eigenvektoren: Lineare Algebra in Python <7>
Warteschlangen- und Python-Implementierungsmodul "deque"
Gefaltetes Liniendiagramm und Skalierungslinie in Python
Implementieren Sie den FIR-Filter in Python und C.
Unterschiede zwischen Python- und Java-Syntax
Überprüfen und empfangen Sie die serielle Schnittstelle in Python (Portprüfung)
Ein leicht verständlicher Vergleich der grundlegenden Grammatik von Python und Go
Suchen und spielen Sie YouTube-Videos mit Python
Unterschied zwischen @classmethod und @staticmethod in Python
Unterschied zwischen Anhängen und + = in der Python-Liste
Unterschied zwischen nicht lokal und global in Python
Schreiben Sie die O_SYNC-Datei in C und Python
Umgang mit "Jahren und Monaten" in Python
Extrahieren Sie alle n Elemente aus einem Array (einer Liste) in Python und Ruby
Lesen und schreiben Sie JSON-Dateien mit Python
Zeichnen Sie Daten einfach in Shell und Python
Suchen und überprüfen Sie die inverse Matrix in Python
Lineare Unabhängigkeit und Basis: Lineare Algebra in Python <6>
Rufen Sie sudo in Python auf und füllen Sie das Passwort automatisch aus