最初のエラーでbashスクリプトset -e
を停止するために使用します。
次のコマンドを使用しない限り、すべて正常に動作し&&
ます。
$ 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
$
と比べて:
$ 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
$
最初の例はまだエコーI'm running!
しますが、2番目の例はエコーしません。なぜ彼らは異なる振る舞いをするのですか?
UPD。同様の質問:https : //stackoverflow.com/questions/6930295/set-e-and-short-tests
cd
コマンドが失敗した後、スクリプトが停止する予定です
set -e
。