[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
- RES: [shell-script] O IF NÃO FUNCIONA PQ ?,
Julio Cezar Neves - DATAPREVRJ <=