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

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

Re: [shell-script] Re: Funções com comando tee


From: Julio C. Neves
Subject: Re: [shell-script] Re: Funções com comando tee
Date: Thu, 1 Nov 2007 17:03:22 -0300

Olá Miguel,
tens razão eu não havia reparado o -ne no seu script. Li rapidamente e
imaginei que fosse -eq. Vc fez:

./Main/Base/checknet.sh
[ $? -ne 0 ] && Exit || exit 1

O correto seria eu ter sugerido que vc fizesse:

./Main/Base/checknet.sh || Exit || exit 1

ou melhor ainda:

./Main/Base/checknet.sh || { Exit; exit 1; }

para vc entender, crie um ficheiro chamado file.ok e verife que não exista
um file.nok e faça os seguintes testes:

ls file.ok >/dev/null 2>&1 && echo arquivo existe
ls file.nok >/dev/null 2>&1 && echo arquivo existe
ls file.ok >/dev/null 2>&1 || echo arquivo existe
ls file.nok >/dev/null 2>&1 || echo arquivo existe

Ou seja: se a primeira instrução resultar $? igual a zero, com o conector &&
(E (and) lógico) a segunda será executada e se o conector for || (OU (or)
lógico) a segunda não será executada. Caso o $? da primeira seja diferente
de zero, ocorrerá o oposto. Nestes exemplos usei ">/dev/null 2>&1" somente
para jogar a saída do ls e a saída de erros para /dev/null.

Abração,
Julio

Em 01/11/07, miguelcm86 <address@hidden> escreveu:
>
>   Tem de ter atenção pois o que está a dizer penso que está errado, não
> faz sentido:
>
> > Mesmo assim, a melhor forma de fazer isso é assim:
> >
> > ./Main/Base/checknet.sh && Exit || exit 1
> >
> > Se vc ler as URLs que te passei na outra msg, perceberás (que aqui
> falamos
> > entenderás)
> já li mais de uma vez :P
>
> repara que quando checknet.sh retomar 1 ele tem que fazer a função
> Exit ( e como Exit acaba com return 1) ele executar o exit 1.
>
> O comando && só executa o comando seguinte quando o primeiro é
> verdadeiro, digamos que neste caso é quando ocorre bem que é quando o
> return é 0, mas o que quero é exactamente ao contrario quero que ele
> execute quando o return for 1.
>
> Só disse isto para não ficar algo errado por aqui ;)
> Se não estou certo os seus apontamentos estão errados, algo tem de
> estar errado, porque são coisas opostas.
> >
> > Abraços,
> > Julio
> >
> Abraços Julio ;)
>
>  
>



-- 
Abraços,
Julio
http://www.julioneves.com - Um livro sobre Bash completo e on-line
:wq


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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