Добавить к принятому ответу:
Имейте в виду, что set -e
иногда недостаточно, особенно если у вас есть трубы.
Например, предположим, у вас есть этот скрипт
#!/bin/bash
set -e
./configure > configure.log
make
... что работает как ожидалось: ошибка в configure
прерывает выполнение.
Завтра вы сделаете, казалось бы, тривиальное изменение:
#!/bin/bash
set -e
./configure | tee configure.log
make
... и теперь это не работает. Это объясняется здесь , и предоставляется обходной путь (только для Bash):
#!/bin/bash
set -e
<b>set -o pipefail</b>
./configure | tee configure.log
make