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