Używam set -e
do zatrzymania skryptu bash przy pierwszym błędzie .
Wszystko działa OK, chyba że użyję polecenia z &&
:
$ 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
$
w porównaniu z:
$ 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
$
Pierwszy przykład wciąż się powtarza I'm running!
, ale drugi nie. Dlaczego zachowują się inaczej?
UPD. Podobne pytanie: /programming/6930295/set-e-and-short-tests
cd
poleceniu
set -e
zachowanie jest zaskakujące.