
loko2010
(usa Outra)
Enviado em 05/02/2014 - 00:53h
Boa noite pessoal,
Minha dúvida é a seguinte, montei um script que faz várias perguntas ao usuário e no final mostra as respostas na tela para confirmação do usuário.
Como faço para quando o cara tiver digitado algo errado, volte ao script e comece tudo novamente?
Estou a muito tempo tentando e a melhor forma que achei foi essa:
1. crio uma função "executar" - que vai rodar todo o script com os dados passados pelo usuario.
2. crio uma função "perguntas" - que vai fazer as perguntas ao usuário e mostrar na tela para confirmação.
3. crio o loop:
while :
do
perguntas
case $SN in
s | S) executar ; break ;;
n | N) perguntas ;;
*) clear ; echo ; echo "Opção inválida. Digite s ou n." ; echo ; echo "Enter para recomeçar..." ; read ;;
esac
done
Os problemas até agora...
1. Eu queria que o cara só pudesse digitar "s" ou "n" qualquer outra tecla não faria nada, nem apareceria na tela.
2. Da forma que fiz se o cara confirmar com "s" vai embora, porém se o cara der um "n" ele volta para o script e na proxima confirmação indiferente de escolher "s" ou "n" ele recomeça novamente...
Espero ter sido claro.... hehehehe... Existe alguma forma melhor de fazer isso?
Obrigado.