Добавить в начало скрипта:
set -euxo pipefail
Что всё это значит:
set -e
set -e
- прекращает выполнение скрипта если команда завершилась ошибкой, выводит в stderr строку с ошибкой. Обойти эту проверку можно добавив в пайплайн к команде true: mycommand | true
.
set -u
set -u
- прекращает выполнение скрипта, если встретилась несуществующая переменная.
set -x
set -x
- выводит выполняемые команды в stdout перед выполненинем.
set -o pipefail
set -o pipefail
- прекращает выполнение скрипта, даже если одна из частей пайпа завершилась ошибкой. В этом случае bash-скрипт завершит выполнение, если mycommand вернёт ошибку, не смотря на true в конце пайплайна: mycommand | true
.