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

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

Re: [shell-script] if com (()), [], []]


From: Reinaldo Carvalho
Subject: Re: [shell-script] if com (()), [], []]
Date: Thu, 8 Dec 2005 10:01:34 -0300

O if possui a segunte sintaxe:

if comando ; then ... ; fi

Ou seja, ele vai executar o que estiver do 'if' até o próximo ';', e
se retorno desse comando for 0 então ele entrá no 'then', caso
contrario ele verifica se existe o "else"/"elif".

Logo podemos usar qualquer "comando", seja um simples "ls /
&>/dev/null" ou "ls /notfound &>/dev/null". Agora, existem utilitários
como o "test" ou "[" que retornam para o "if" 0 ou 1, baseados em
checagens, como: maior que, menor que, igual, etc. Este dois são parte
do pacote gnu/coreutils.

coreutils: usr/bin/test
coreutils: usr/bin/[

bash:         The if command is executed.  If its exit status is zero,
the then is executed.  Otherwise, each elif is executed  in turn,  and
 if  its  exit status is zero, the corresponding then is executed and
the command completes.  Otherwise, the else is executed, if present.

[ é uma função interna do bash que é usada preferencialmente ao
comando '[' e 'test'. Em todo caso, estes são equivalentes.

[[ é outra "funcão" interna do bash que aceita expressões regulares.

(( acho que isso não se aplica ao if.

Como já vimos, o importante para o if eh o status do comando, o test
ou [ retornaram 0 ou 1 dependendo da checagem. Assim como (( 1 + 1 ))
sempre vai retornar verdadeiro, pois este sempre será executado com
sucesso.

Em 07/12/05, Christian Lyra<address@hidden> escreveu:
> Caros,
>
> Estou com um pouco de dificuldade de entender a utilização de (()), [] e
> [[]] no comando if. Pelo que eu entendi o (( )) é usado quando se tem algum
> tipo de expressão aritmética dentro dele, ex. if (( 1 + 1 )). O [ ] serve
> como um alias para o comando test, então if [ -f /tmp/foo ] na verdade
> equivale a if test -f /tmp/foo. certo?  Pois bem... e quanto ao [[ ]] ? Os
> exemplos e a descrição dele parecem bastante com a utilização do [ ]. Quando
> deve ser utilizado cada caso?
>
> Christian Lyra
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ---------------------------------------------------------------------
> 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
>
>
>
>
>
>
>
>


--
Reinaldo Carvalho
Debian Sarge 3.1 - Linux User: #238310
Prodepa - address@hidden


reply via email to

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