У нижченаведеному скрипті, який спонукає користувача підтвердити, що він хоче продовжити запуск потенційно поганого сценарію, - коли користувач увійде Y
за запитом - він вирветься з case
блоку, лише знову буде відправлений у while
цикл.
#! /bin/bash
set -e
echo
echo "bad install start"
echo "-----------------------------------------"
while true; do
read -p "this script will probably fail - do you want to run anyway?" yn
case $yn in
[Yy]*)
##### WHAT GOES HERE?? #####
;;
[Nn]*)
exit ;;
*)
echo "answer y or n" ;;
esac
echo "script has broken out of case back into while loop"
done
echo -e "\e[33m Installing bad packagename \e[0m"
apt-get install sdfsdfdfsd
echo "rest of script - will i keep running?"
Коли n
введено, сценарій існує повністю за бажанням. Я хотів би знати, як зробити так, щоб при Y
введенні сценарій не проривався з блоку case
і час, але не виходив повністю. Чи можу я вкласти для заповнювача ("Що тут?") Для цього?
Ви редагували свій код, оскільки я вперше відповів, але зауважте, у будь-якому випадку, який
—
даг
$TEST=1
має бути TEST=1
, і ваш сценарій, швидше за все, буде працювати з цією зміною.
да, так, я це бачив під час тестування!
—
the_velour_fog
@dhag Я думаю, що я покращив вашу редакцію - погляньте. Здається, ваша мета - переписати код на те, де ваша відповідна відповідь добре підходить, і я думаю, зараз це ближче.
—
дероберт
@derobert: Ваша редакція мені добре виглядає; це, безумовно, робить питання більш зрозумілим.
—
даг
[Yn]*)
; Ви , ймовірно , мав в виду[Yy]*)
.