Olá,
O uso do and && e do or || possui um detalhe importante, como
exemplificado na construção a seguir:
test 1 -eq 1 && {
comando1
comando2
comando3
} || {
comando4
comando5
comando6
}
Caso o "comando3" retorne o status de execução $? diferente de zero,
os comandos 4, 5 e 6 serão executados.
Assim o estrutura " } || {" incide sobre o último comando executado;
se o test tiver status 1, incide sobre o retorno do test, se o test
tiver status 0 incide sobre o comando3.
Para que esta estrutura funcione exatamente como um if/then/else, é
necessário adicionar o "true" ao final do primeiro bloco de comandos,
garantindo que o próximo bloco de comandos não seja executado:
test 1 -eq 1 && {
comando1
comando2
comando3
true
} || {
comando4
comando5
comando6
}
Fica a dica. :)
--
Reinaldo Carvalho