Ich verwende set -e
zu Bash - Skript auf den ersten Fehler zu stoppen .
Alle funktionieren OK, es sei denn, ich verwende den Befehl mit &&
:
$ 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
$
im Vergleich zu:
$ 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
$
Das erste Beispiel I'm running!
hört sich immer noch an , das zweite nicht. Warum verhalten sie sich anders?
UPD. Ähnliche Frage: /programming/6930295/set-e-and-short-tests
cd
Befehl
set -e
Verhalten überraschend ist.