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
break (Enter)
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