[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Dúvida...
From: |
Flavio Junior |
Subject: |
Re: [shell-script] Dúvida... |
Date: |
Tue, 9 May 2006 09:58:28 -0300 |
No caso, voce usou o operador && (AND), ou seja, o segundo comando só
sera executado se o primeiro retornar 0 (sem erros) ...
Então, obrigatoriamente, voce tera a saida do segundo comando se ele
for executado.
Se o primeiro saiu 0 o segundo sera executado, se o primeiro sair
diferente de 0 o segundo nem sera executado. Qualquer coisa diferente
de 0 é erro, e voce vai ter uma saida de erro. Para a condição ser
verdadeira, ela tem que sair com 0 nos 2 comandos.
$ (echo teste && cat arq_nao_existe) && echo OK || echo NOK
teste
cat: arq_nao_existe: No such file or directory
NOK
Se voce quiser que o segundo comando seja executado, independente do
primeiro dar certo ou nao, utilize o ; .
$ (echo teste ; cat arq_nao_existe) && echo OK || echo NOK
teste
cat: arq_nao_existe: No such file or directory
NOK
Neste caso, o resultado vai ser de acordo com o segundo comando, se
ele saiu 0 da OK, se ele sair dfierente de 0 da NOK
Se voce quiser executar o segundo comando, SOMENTE se o primeiro der
erro, use o operador || (OR)
$ (cat arq_novo || cat arq_velho_mesmo_faze_oq) && echo OK || echo NOK
Isso vai retornar OK se pelo menos 1 dos 2 comandos dar certo e
retornar 0, soh vai dar NOK se nenhum dos 2 comandos retornar 0...
Isso é operaçao logica basica de programação e algebra de boole :)
Flavio do Carmo Junior aka blk1d
On 5/9/06, André Unno <address@hidden> wrote:
Bom dia pessoal.
Gostaria de tirar uma dúvida com relação a utilização de parenteses no
script.
Quando eu coloco dois comandos dentro de parenteses... ex:
# (/usr/local/bin/teste.sh && /usr/local/bin/teste1.sh)
se após a execução desse script o valor da variável $# for igual a 0 isso
quer dizer que esses 2 scripts foram executados com sucesso ou o valor dessa
variável é apenas referente a execução do último script (teste1.sh)?
--
André Unno
GNU/LinuxCounter#390708
http://counter.li.org
O sistema pediu: "Requires Windows 9x, Windows 2000 or better".
Então eu instalei Linux.
[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
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
Links do Yahoo! Grupos