Я использую, set -e
чтобы остановить скрипт bash при первой ошибке .
Все работает хорошо, если я не использую команду с &&
:
$ 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
поведение удивительно.