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