Czasami muszę poprosić użytkownika o potwierdzenie „tak / nie”.
Zwykle używam czegoś takiego:
# 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;
}
Czy jest na to lepszy sposób? Czy to narzędzie może już jest w moim /bin
folderze?
command-line
bash
c0rp
źródło
źródło
select
, ale poza tym nie widzę prostszego sposobu.Odpowiedzi:
Ach, jest coś wbudowanego:
zenity
to graficzny program dialogowy:Oprócz tego
zenity
możesz użyć jednego z:źródło
dialog
lubwhiptail
być bardziej nadaje się do CLI?yad
który ma więcej ulepszeń i mniej błędów IMO.Dla mnie to wygląda dobrze. Zrobiłbym tylko trochę mniej „rób albo giń”:
return 0
return 1
W ten sposób możesz zrobić coś takiego:
Dzięki
select
sugestii @ muru funkcja może być bardzo zwięzła:źródło
Na zakończenie napisałem ten skrypt :
Najnowszą wersję skryptu można znaleźć tutaj . Wypełnij swobodnie, aby zmienić / edytować
źródło
Używam następujących:
źródło
źródło