Manchmal muss ich den Benutzer nach Ja / Nein fragen, um etwas zu bestätigen.
Normalerweise benutze ich so etwas:
# Yes/no dialog. The first argument is the message that the user will see.
# If the user enters n/N, send exit 1.
check_yes_no(){
while true; do
read -p "$1" yn
if [ "$yn" = "" ]; then
yn='Y'
fi
case "$yn" in
[Yy] )
break;;
[Nn] )
echo "Aborting..."
exit 1;;
* )
echo "Please answer y or n for yes or no.";;
esac
done;
}
Gibt es einen besseren Weg, es zu tun? Befindet sich dieses Dienstprogramm möglicherweise bereits in meinem /bin
Ordner?
command-line
bash
c0rp
quelle
quelle
select
, aber ansonsten sehe ich keinen einfacheren Weg.Antworten:
Ah, da ist etwas eingebaut:
zenity
ist ein grafisches Dialogprogramm:Zusätzlich
zenity
können Sie eine der folgenden Optionen verwenden:quelle
dialog
oderwhiptail
zu CLI besser geeignet?yad
die IMO mehr Verbesserungen und weniger Fehler aufweist.Das sieht für mich gut aus. Ich würde es einfach ein bisschen weniger "tun oder sterben" machen:
return 0
return 1
Auf diese Weise können Sie Folgendes tun:
Mit @ murus
select
Vorschlag kann die Funktion sehr knapp sein:quelle
Als Fazit habe ich dieses Skript geschrieben :
Die neueste Version des Skripts finden Sie hier . Füllen Sie frei, um zu ändern / zu bearbeiten
quelle
Ich benutze die folgenden:
quelle
quelle