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

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

Re: [shell-script] Testando valor de variavel ?


From: Fabiano Caixeta Duarte
Subject: Re: [shell-script] Testando valor de variavel ?
Date: Sun, 21 May 2006 10:54:34 -0300
User-agent: Thunderbird 1.5 (X11/20051201)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Fernando,

O comparador lógico que você está usando está errado. Dentro de um
'test' você usa os operadores -a e -o. Junte-se a isto, parece que você
se equivocou na lógica. Você quer fazer um teste and e não um teste or.

if [ $resposta != 's' -a $resposta != 'n']; then
  echo "Vc precisa decidir por s ou n"
  exit -2
fi

Mas eu sugiro que você use outra abordagem: expressões regulares + valor
default.

Valor default para evitar problemas no caso do usuário não passar
informação nenhuma:

read -n 1 resposta
resposta=${resposta:-n}

Expressões regulares para testar o valor passado

[[ $resposta =~ [snSN] ]] && echo OK || echo ERRO

Abraços!

Fabiano Caixeta Duarte
Consultor em soluções para Redes de Computadores
Linux User #195299
Ribeirão Preto - SP


pythondeveloper escreveu:
> Flavio Junior, eu acho que dessa maneira fica fora de lógica né....
> pq se $resposta for diferente de 's' ele naum ta no sistema. Bom mas 
> naum é isso que eu quero fazer. Veja:
> 
> echo "deseja cadastrar um novo usuario ?[sn]"
> read resposta
> if [ $resposta != 's' ] || [ $resposta != 'n']; then
>   echo "Vc precisa decidir por s ou n"
>   exit
> fi
> 
> Isso é pra evitar outras situações de por exemplo a pessoa apertar o 
> t,a,b, ou seja, naum seguir o que o programa ta perguntando...
> 
> []'s
> Fernando Paiva
> 
> 
> Flavio Junior escreveu:
>> if [ $resposta != 'n' ] || [ $resposta != 's' ]; then
>>
>> mas nao seria melhor:
>>
>> if [ $resposta != 's' ] || [ $resposta != 'S' ]; then
>>     to no sistema
>> else
>>    echo "volte semper"
>> fi
>>
>>
>> Flavio do Carmo Junior aka blk1d
>>
>> On 5/20/06, pythondeveloper <address@hidden> wrote:
>>> salve salve galera, estou tentando testar o valor de uma variavel
>>>
>>> echo "Desenha entrar no sistema ?[sn]
>>> read resposta
>>> if [ $resposta != 'n'  ||  $resposta != 's' ]; then
>>>  echo "digite n ou s"
>>>  exit
>>> fi
>>>
>>> Não esta funcionando, qquer letra que eu digito ele da exit.
>>>
>>> Desde ja, agradeco.
>>>
>>>
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> Esta lista não admite a abordagem de outras liguagens de 
>> programação, como perl, C etc. Quem insistir em não seguir esta regra 
>> será moderado sem prévio aviso.
>>> ---------------------------------------------------------------------
>>> Sair da lista: address@hidden
>>> ---------------------------------------------------------------------
>>> Esta lista é moderada de acordo com o previsto em 
>> http://www.listas-discussao.cjb.net
>>> ---------------------------------------------------------------------
>>> Servidor Newsgroup da lista: news.gmane.org
>>> Grupo: gmane.org.user-groups.programming.shell.brazil
>>>
>>>
>>> Links do Yahoo! Grupos
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> Esta lista não admite a abordagem de outras liguagens de programação, 
>> como perl, C etc. Quem insistir em não seguir esta regra será moderado 
>> sem prévio aviso.
>> ---------------------------------------------------------------------
>> Sair da lista: address@hidden
>> ---------------------------------------------------------------------
>> Esta lista é moderada de acordo com o previsto em 
>> http://www.listas-discussao.cjb.net
>> ---------------------------------------------------------------------
>> Servidor Newsgroup da lista: news.gmane.org
>> Grupo: gmane.org.user-groups.programming.shell.brazil
>>
>>
>>
>>
>> *Yahoo! Grupos, um serviço oferecido por:*
>> PUBLICIDADE
>>
>>
>> ------------------------------------------------------------------------
>> *Links do Yahoo! Grupos*
>>
>>     * Para visitar o site do seu grupo na web, acesse:
>>       http://br.groups.yahoo.com/group/shell-script/
>>        
>>     * Para sair deste grupo, envie um e-mail para:
>>       address@hidden
>>       <mailto:address@hidden?subject=Unsubscribe>
>>        
>>     * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
>>       Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
>>
>>
> 
> 
> 
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como 
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
> 
>  
> Links do Yahoo! Grupos
> 
> 
> 
> 
>  
> 
> 
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFEcHEa++b4Zs4fOnMRAmyjAKCQ2L8Y4aiVUl71K6063p7mnmENPgCfdSfk
JtzzGzqAMFQrXAEvoObdM9k=
=DlFj
-----END PGP SIGNATURE-----


reply via email to

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