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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: Como testar se um valor digitado é um número


From: Julio C. Neves
Subject: Re: [shell-script] Re: Como testar se um valor digitado é um número
Date: Mon, 1 Oct 2007 14:49:15 -0300

Olá jsreis,
vá em http:www.julioneves.com e na caixa colocada no canto superior
esquerdo, procure cada uma das suas dúvidas.

Abraço,
Julio

Em 01/10/07, jrsreis <address@hidden> escreveu:
>
>    Olá Júlio,
>
> Blz ? Aqui testei aqui e ficou show de bola. Era isso mesmo que
> queria. Muito legal. Agora, estou tentai decifrar como funciona cada
> parte.
>
> - [ $1 -eq 1 ]
>
> Esta parte está verificando se é o primeiro valor a digitar ?
>
> - O que significa quando coloca:
> while :
>
> - O que quer dizer tput civis ?
>
> - O que quer dizer tput cnorm ?
>
> - Por que no final do while > /dev/tty ?
>
> - O que quer dizer tput el ?
>
> - O que significa read -p ?
>
> - O que está fazendo este comando [[ $Num =~ ^[0-9]+$ ]] ?
>
> Abraços e parabéns.
>
> --- Em address@hidden <shell-script%40yahoogrupos.com.br>,
> "jrsreis" <jrsreis@...> escreveu
> >
> > 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<shell-script%40yahoogrupos.com.br>,
> "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>
> <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]
> > >
> >
>
>  
>



-- 
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]