J'utilise set -e
pour arrêter le script bash à la première erreur .
Tout fonctionne bien sauf si j'utilise la commande avec &&
:
$ 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
$
comparé à:
$ 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
$
Le premier exemple fait toujours écho I'm running!
, mais pas le second. Pourquoi se comportent-ils différemment?
UPD. Question similaire: /programming/6930295/set-e-and-short-tests
cd
commande infructueuse
set -e
comportement est surprenant.