No script abaixo - que solicita ao usuário que confirme que deseja continuar com a execução de um script potencialmente ruim - quando o usuário digita Y
no prompt - ele será interrompido case
, apenas para ser enviado novamente ao while
loop.
#! /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?"
Quando n
é inserido, o script existe inteiramente como desejado. Gostaria de saber como fazê-lo para que, quando Y
digitado, o script saia do bloco while case
e do bloco while, mas não saia completamente. Existe algo que eu possa colocar para o espaço reservado ("O que se passa aqui ??") faça isso?
Você editou seu código desde que eu respondi pela primeira vez, mas observe o que for
—
Dhag
$TEST=1
necessário TEST=1
, e é muito provável que seu script funcione com essa alteração.
doh, sim eu vi isso ao testar!
—
The_velour_fog # 4/15
@ dhag Eu acho que melhorei sua edição - por favor, dê uma olhada. Parece que seu objetivo é reescrever o código em algo em que sua resposta aceita se encaixe bem, e acho que está mais perto agora.
—
Derobert 4/15
@derobert: Sua edição parece boa para mim; certamente torna a pergunta mais clara.
—
dhag
[Yn]*)
; você provavelmente quis dizer[Yy]*)
.