Como usar While ?!? [RESOLVIDO]

1. Como usar While ?!? [RESOLVIDO]

Thiago Lourenço
igordragoon

(usa Fedora)

Enviado em 31/10/2008 - 15:22h

Prezados amigos sou iniciante em programação, estou fazendo um pequeno script, onde pergunto "qual o seu peso ? queria poder restringir o usuario a poder digitar apenas números usando o while, mas não consegui poderiam me dar uma ajuda ?!? Vou colar o pedaço do meu script aqui embaixo !!!


###############
#PROCEDIMENTOS#
###############

###PROCEDIMENTO 1

opcao1(){
echo "Qual o seu peso ?!?

Obs: Digite apenas números inteiros

"
read peso

if [ $peso -lt 55 ]
then
echo "Nossa como você está magro"
elif [ $peso -lt 80 ]
then echo "Você está com um bom peso"
else [ $peso -gt 80 ]
echo "Você está precisando fazer um regime"

fi
sleep 2
clear
}

#while [ "$peso" != $( [0-9] ) ]; do
# opcao1
#done



  


2. Re: Como usar While ?!? [RESOLVIDO]

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 31/10/2008 - 15:53h

Utilize o grep:

--------------
while true
do
if echo $peso | grep "[^0-9]"
then
opcao1
else
break
fi
done
---------------

Você até poderia utilizar o while desse modo:

while [[ "$peso" != *[0-9]* ]] ...

O problema é que valores que intercalam números e outros caracteres (ex.: 1a4, c75, ...) seriam avaliados como verdadeiros, causado "furo" de lógica no teu script.

Ah, a saída do seu script fica "poluida" quando se especifica caracteres não-numéricos, então a partir da idéia do grep, você pode resolver isso! ;)


3. Re: Como usar While ?!? [RESOLVIDO]

Damasceno
DamascenoNet

(usa Outra)

Enviado em 31/10/2008 - 17:12h

vc pode fazer do seguinte modo.



tenha em mente que isto é bastante simples, embora a primeira vista pareça complicado




então, pra vc, ficaria assim:





www.google.com


4. Re: Como usar While ?!? [RESOLVIDO]

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 31/10/2008 - 20:07h

Ah, esqueci de mencionar que também é possível limitar a quantidade de caracteres digitados pelo usuário, basta que você utilize o 'read' com a opção '-n', assim 'read -n <valor>'. Ex.:

read -n3

Desse modo a quantidade máxima de caracteres que o usuário pode definir, são três.

P.S.:

DamascenoNet seria mais fácil e prático: www.google.com/linux =)








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts