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

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

Re: [shell-script] Dúvida...


From: Alain M.
Subject: Re: [shell-script] Dúvida...
Date: Tue, 09 May 2006 11:16:31 -0300
User-agent: Thunderbird 1.5.0.2 (X11/20060420)

Oi Flávio,

Também sou grato por tua explicação. Essa maneira de concatenar comandos abre várias possibilidades.

Mas... o enfoque da pergunta do André é sobre o uso dos parentesis, e também fiquei curioso sobre esse aspecto. Então é possível usar parentesis para agrupar comandos do shell? Até que ponto? Em que shell eles vão rodar?

Abraços,
Alain

Flavio Junior escreveu:
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










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










reply via email to

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