Я використовую set -e
для зупинки bash script при першій помилці .
Все працює добре, якщо я не використовую команду з &&
:
$ 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!
, а другий - ні. Чому вони поводяться по-різному?
UPD. Подібне запитання: /programming/6930295/set-e-and-short-tests
cd
команди
set -e
поведінка дивує.