Eu uso set -e
para parar o script bash no primeiro erro .
Todos funcionam bem, a menos que eu use o comando com &&
:
$ cat script
set -e
cd not_existing_dir && echo 123
echo "I'm running! =P"
$
$ ./script
./script: line 2: cd: not_existing_dir: No such file or directory
I'm running! =P
$
comparado com:
$ cat script
set -e
cd not_existing_dir
echo "I'm running! =P"
$
$ ./script
./script: line 2: cd: not_existing_dir: No such file or directory
$
O primeiro exemplo ainda ecoa I'm running!
, mas o segundo não. Por que eles se comportam de maneira diferente?
UPD. Pergunta semelhante: /programming/6930295/set-e-and-short-tests
cd
comando malsucedido
set -e
comportamento é surpreendente.