Большинство bash-скриптов падают молча. Команда завершилась с ошибкой, но скрипт продолжил работу, удалил не те файлы, задеплоил что-то сломанное. И вы узнаёте об этом только потом.
Две строки в начале файла это исправляют:
#!/bin/bash
set -euo pipefail
Первая строка это шебанг. Она говорит системе, каким интерпретатором запускать скрипт. Без неё поведение зависит от оболочки пользователя, а это непредсказуемо.
Вторая строка включает три флага сразу.
set -e останавливает скрипт, если любая команда завершилась с ошибкой. По умолчанию bash игнорирует ошибки и идёт дальше.set -u превращает обращение к необъявленной переменной в ошибку. Опечатка в имени переменной без этого флага просто вернёт пустую строку и скрипт продолжит работу с пустым значением там, где ожидал путь или имя файла.set -o pipefail ловит ошибки внутри пайпов. Без него такая конструкция:cat file.txt | grep "pattern"
вернёт успех, даже если cat не смог открыть файл. Флаг фиксирует ошибку в любом месте цепочки.
Шебанг + set -euo pipefail это минимальный стандарт для любого bash-скрипта, который делает что-то важное.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_prompt