Yo uso set -e
para detener el script bash en el primer error .
Todo funciona bien a menos que use el comando con &&
:
$ 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 con:
$ 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
$
El primer ejemplo todavía tiene eco I'm running!
, pero el segundo no. ¿Por qué se comportan de manera diferente?
UPD Pregunta similar: /programming/6930295/set-e-and-short-tests
cd
comando fallido
set -e
comportamiento es sorprendente.