Parfois, je dois demander à l'utilisateur oui / non pour confirmer quelque chose.
Habituellement, j'utilise quelque chose comme ça:
# 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;
}
Y a-t-il une meilleure façon de le faire? Cet utilitaire est peut-être déjà dans mon /bin
dossier?
command-line
bash
c0rp
la source
la source
select
, mais sinon je ne vois pas de manière plus simple.Réponses:
Ah, il y a quelque chose de intégré:
zenity
est un programme de dialogue graphique:De plus
zenity
, vous pouvez utiliser l'un des éléments suivants:la source
dialog
ou ne seraient-ils paswhiptail
plus adaptés à CLI?yad
qui a plus d'améliorations et moins de bugs IMO.Cela me semble bien. Je ferais juste un peu moins "faire ou mourir":
return 0
return 1
De cette façon, vous pouvez faire quelque chose comme:
Avec la
select
suggestion de @ muru , la fonction peut être très concise:la source
En conclusion, j'ai écrit ce script :
La dernière version du script peut être trouvée ici . Remplissez gratuitement pour modifier / modifier
la source
J'utilise les éléments suivants:
la source
la source