shell-script-pt
[Top][All Lists]
Advanced

[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 14:23:27 -0000
User-agent: eGroups-EW/0.82

 Olá Júlio,

    Obrigado pela dica, farei o teste aqui, se tiver mais dúvidas,
entrarei em contato.
  
  Até mais,

 Júnior.

--- Em address@hidden, "Julio C. Neves" <08years@...>
escreveu
>
> Fala Junior,
> uma função deve ser criada somente se ela for usada em 2 ou mais pontos
> diferentes do seu programa. Assim sendo, eu faria a função da seguinte
> forma:
> function Le
> {
> #  Esta função recebe os seguintes parâmetros:
> #+ $1 = 1 se for leitura do primeiro campo,
> #+ $1 = 2 se for leitura do segundo
>     local Num Err
>     local Lin=12
>     [ $1 -eq 1 ] && Lin=10
>     while :
>     do
>         [ $Err ] &&
>             {
>             tput cup $Lin 40
>             tput civis
>             echo Erro
>             read
>             tput cnorm
>             } > /dev/tty
>         {
>         tput cup $Lin 10
>         tput el
>         } > /dev/tty
>         read -p "Informe o $1o. número: " Num
>         [[ $Num =~ ^[0-9]+$ ]] && {
>             echo $Num
>             return
>             }
>         Err=1
>     done
> }
> clear
> Num1=$(Le 1)
> Num2=$(Le 2)
> echo $Num1 $Num2
> 
> Abraços,
> Julio
> Em 25/09/07, jrsreis <jrsreis@...> escreveu:
> >
> >   --- Em
address@hidden<shell-script%40yahoogrupos.com.br>,
> > 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.
> >
> >  
> >
> 
> 
> 
> -- 
> Abraços,
> Julio
> http://www.julioneves.com - Um livro sobre Bash completo e on-line
> :wq
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]