Как писать красивые и безопасные bash скрипты

Опубликовано 19 октября, 2020 - 11:05 пользователем hobocta
Теги: 

Добавить в начало скрипта:

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.