Saya menggunakan set -e
untuk menghentikan skrip bash pada kesalahan pertama .
Semua berfungsi OK kecuali saya menggunakan perintah dengan &&
:
$ 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
$
dibandingkan dengan:
$ 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
$
Contoh pertama masih menggema I'm running!
, tetapi yang kedua tidak. Mengapa mereka berperilaku berbeda?
UPD. Pertanyaan serupa: /programming/6930295/set-e-and-short-tests
cd
perintah gagal
set -e
perilaku mengejutkan.