Validação de informações em formulário [RESOLVIDO]

1. Validação de informações em formulário [RESOLVIDO]

Marco
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.



  


2. Re: Validação de informações em formulário [RESOLVIDO]

Carlos Alberto Mazzer
cmazzer

(usa Ubuntu)

Enviado em 05/02/2014 - 22:24h

Fiz de outra forma:
- Não conheço forma de bloquear o teclado para o usuário não digitar o que ele quiser no terminal.

- Sobre a lógica de programação, pode fazer desta maneira abaixo. Desta maneira só vai sair do programa se digitar "s" , caso contrário volta novamente para o começo.





#!/bin/bash
contador=1
while [ $contador = 1 ]
do
echo "Digite s (sim) ou n (nao) :"
read entrada
if [ $entrada == 's' ]
then
echo "A resposta foi sim ... vai embora"
contador=0
else
echo "Você não respondeu corretamente, volta tudo denovo."
fi
done



3. Re: Validação de informações em formulário [RESOLVIDO]

Marco
loko2010

(usa Outra)

Enviado em 10/02/2014 - 22:49h

Perfeito!

Fiz alguns testes ajustei para meu script e rodou perfeitamente. Muito Obrigado!!!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts