Иногда мне нужно спросить пользователя да / нет, чтобы подтвердить что-то.
Обычно я использую что-то вроде этого:
# 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;
}
Есть ли лучший способ сделать это? Может быть, эта утилита уже в моей /bin
папке?
command-line
bash
c0rp
источник
источник
select
, но в противном случае я не вижу более простого способа.Ответы:
Ах, есть что-то встроенное:
zenity
это графическая диалоговая программа:В дополнение к
zenity
, вы можете использовать один из:источник
dialog
лиwhiptail
они более подходящими для CLI?yad
который имеет больше улучшений и меньше ошибок IMO.Это выглядит хорошо для меня. Я просто сделал бы это немного менее «делай или умри»:
return 0
return 1
Таким образом, вы можете сделать что-то вроде:
С предложением @ muru
select
функция может быть очень краткой:источник
В заключение я написал этот скрипт :
Последнюю версию скрипта можно найти здесь . Заполните бесплатно, чтобы изменить / редактировать
источник
Я использую следующее:
источник
источник