Uso set -e
per interrompere lo script bash al primo errore .
Tutto funziona bene a meno che non utilizzi il 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
$
paragonato a:
$ 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
$
Il primo esempio fa ancora eco I'm running!
, ma il secondo no. Perché si comportano diversamente?
UPD. Domanda simile: /programming/6930295/set-e-and-short-tests
cd
comando non riuscito
set -e
comportamento è sorprendente.