[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Como testar se um valor digitado é um número
From: |
jrsreis |
Subject: |
Re: Como testar se um valor digitado é um número |
Date: |
Tue, 25 Sep 2007 12:17:46 -0000 |
User-agent: |
eGroups-EW/0.82 |
--- Em address@hidden, Fabiano Caixeta Duarte
<fcd.listas@...> escreveu
>
> jrsreis escreveu:
> >
> >
> > Olá Pessoal,
> >
> > Estou tentando criar um script com função, mas não estou
> > conseguindo, nem passar o valor para a função. E gostaria também de
> > saber se há como testar se um valor digitado é um número negativo ou
> > positivo. Se o usuário teclar Enter sem digitar nada o programa teria
> > que trar isso.
> > Abaixo segue o que estou tentando fazer. Se puderem me ajudar, eu
> > agradeço.
> >
> > #!/bin/bash
> > # Script para comparar dois números
> >
> > clear
> >
> > function frecebervalor
> > {
> > local FLAG=false
> > while $FLAG == "false"
> > do
> > read N1
> > if [ -z $N1 ] then
> > FLAG=true
> > fi
> >
> > done
> > }
> >
> > echo "Entre com o primeiro número:"
> > frecebervalor N1
> >
> > echo "Entre com o segundo número:"
> > read N2
> >
> > clear
> >
> > if [ $N1 -eq $N2 ] ; then
> > echo "O número $N1 é igual a $N2!"
> > elif [ $N1 -gt $N2 ] ; then
> > echo "O número $N1 é maior do que $N2!"
> > else
> > echo "O número $N2 é maior do que $N1!"
> > fi
> >
>
> Você pode utilizar expressões regulares.
> [[ "$A" =~ ^[0-9]+$ ]] && echo ok
>
> Outra coisa: você não precisa de uma função pra ler um valor da entrada
> padrão. O comando read faz isto pra você.
>
> Fabiano.
>
Olá Fabiano,
Obrigado pela ajuda, eu gostaria de incluir a função somente
para eu entender como funciona, pois estou começando a entrar de
cabeça em shell script. Há possibilidade de me ajudar ? Como faria
para chamar a função ? Eu tenho que ler a entrada de dentro da função
? Ou no momento da chamada da função ?
Júnior.