Às vezes, preciso solicitar ao usuário sim / não para confirmar algo.
Normalmente eu uso algo assim:
# 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;
}
Há uma melhor forma de fazê-lo? Esse utilitário talvez já esteja na minha /bin
pasta?
command-line
bash
c0rp
fonte
fonte
select
, mas, caso contrário, não vejo uma maneira mais simples.Respostas:
Ah, há algo embutido:
zenity
é um programa de diálogo gráfico:Além disso
zenity
, você pode usar um dos seguintes:fonte
dialog
ouwhiptail
seriam mais adequados para a CLI?yad
, que tem mais melhorias e menos bugs na IMO.Isso parece bom para mim. Eu apenas faria um pouco menos de "fazer ou morrer":
return 0
return 1
Dessa forma, você pode fazer algo como:
Com a
select
sugestão de @ muru , a função pode ser muito concisa:fonte
Como conclusão, escrevi este script :
A versão mais recente do script pode ser encontrada aqui . Preencha gratuitamente para alterar / editar
fonte
Estou usando o seguinte:
fonte
fonte