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

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

RES: [shell-script] O IF NÃO FUNCIONA PQ ?


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: [shell-script] O IF NÃO FUNCIONA PQ ?
Date: Thu, 3 Mar 2005 11:51:38 -0300

Galera, esse pitaco é legal e importante:
São muito raras as oportunidades que nos obrigam a testar o $?, já que este
é o código de retorno de cada instrução e o if foi feito para testar
instruções, desta forma, é muito mais eficiente fazer:

if cmd; then
...
fi

do que fazer:

cmd
if [ $? -eq 0 ]; then
...
fi

Não esqueça que a construção [...] nada mais é senão uma instrução, já que é
um link simbólico para /usr/bin/test. Faça:

ls -l /usr/bin/[

e comprove. Isso permite inclusive algumas maluquices. Repare no if abaixo
que não utilizei o "]"
Prompt> var=3
Prompt> if /usr/bin/[ $var -gt 5; then
>     echo var maior que 5
> else
>     echo var menor ou igual a 5
> fi
var menor ou igual a 5

[ ]s,
Julio
:wq

| -----Mensagem original-----
| De: Rodolfo Villanova
| [mailto:address@hidden]
| Enviada em: quinta-feira, 3 de março de 2005 11:17
| Para: address@hidden
| Assunto: RES: [shell-script] O IF NÃO FUNCIONA PQ ?
| 
| 
| 
| Olá,
| 
| Gostaria de dar dois pitacos alí.
| 
| As regras de teste de igualdade são:
| 
| 1.) Entre entidades alfanuméricas:
| 
| if [ "$string1" = "$string2" ]; then
| ...
| 
| As aspas duplas aqui são importantes para poder comparar 
| strings em que
| aparecem espaços em branco entre palavras e/ou números que 
| compuserem o
| string. Se não houverem os tais espaços, nesse caso é 
| opcional usá-las.
| 
| 2.) Entre entidades numéricas, como é o caso:
| 
| if [ $? -eq 0 ]; then
| ...
| 
| Deve ter ocorrido um erro de digitação na linha do if; como 
| já apontando por
| outros na lista, a sintaxe correta para teste é abrir e 
| fechar colchetes:
| [ ... ]. Troque o "fecha-chaves" ( } ) pelo "fecha-colchete" ( ] ).
| 
| Teste e comprove.
| --------------------------
| Rodolfo D. Gross Villanova
| 
| > -----Mensagem original-----
| > De: Gentil de Bortoli Júnior [mailto:address@hidden]
| > Enviada em: quinta-feira, 3 de março de 2005 10:57
| > Para: address@hidden
| > Assunto: Re: [shell-script] O IF NÃO FUNCIONA PQ ?
| >
| >
| >
| > Você está usando o operador errado.
| > Não é "=" e sim "==".
| >
| > []s
| > Gentil.
| >
| > dragonwar13 wrote:
| > > if [ $? = 0 }; then
| > >      echo 'Ok, ele aceitou'
| > >   else
| > >      echo 'Ok, não aceitou'
| >
| >
| > 
| ---------------------------------------------------------------------
| > 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
| ---------------------------------------------------------------------
| 
| 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
---------------------------------------------------------------------
 
Links do Yahoo! Grupos




 




reply via email to

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