A veces necesito preguntarle al usuario sí / no para confirmar algo.
Usualmente uso algo como esto:
# 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;
}
Hay una mejor manera de hacerlo? ¿Esta utilidad tal vez ya está en mi /bin
carpeta?
command-line
bash
c0rp
fuente
fuente
select
, pero de lo contrario no veo una manera más simple.Respuestas:
Ah, hay algo incorporado:
zenity
es un programa de diálogo gráfico:Además de
zenity
, puede usar uno de:fuente
dialog
niwhiptail
ser más adecuado para CLI?yad
que tiene más mejoras y menos errores de la OMI.Eso me parece bien. Simplemente lo haría un poco menos "hacer o morir":
return 0
return 1
De esa manera puedes hacer algo como:
Con la
select
sugerencia de @ muru , la función puede ser muy breve:fuente
Como conclusión, escribí este script :
La última versión del script se puede encontrar aquí . Rellene gratis para cambiar / editar
fuente
Estoy usando lo siguiente:
fuente
fuente