Олег Марков
Локальные переменные функции
Автор
Что решает тема
Локальные переменные функции применяется в рабочих Bash-сценариях для автоматизации рутинных операций: деплой, обслуживание серверов, обработка логов и CI-задачи. Ниже — практичный минимум, который можно сразу перенести в продакшен-скрипты.
Базовый синтаксис
backup_db() {
local dst="$1"
pg_dump app > "$dst"
}
Практический пример
#!/usr/bin/env bash
set -euo pipefail
backup_db() {
local dst="$1"
pg_dump app > "$dst"
}
В продакшене добавляйте проверки входных данных, понятные сообщения об ошибках и явные коды выхода (exit 1, exit 2), чтобы поведение скрипта было предсказуемым.
Частые ошибки
- Отсутствие кавычек вокруг переменных (
"$var"), из-за чего ломаются строки с пробелами. - Игнорирование кодов возврата команд и отсутствие обработки ошибок.
- Смешивание бизнес-логики и побочных эффектов без функций и структуры.
- Использование непереносимых конструкций без указания, что нужен именно Bash.
Рекомендации для стабильных скриптов
- Начинайте файлы с
#!/usr/bin/env bashиset -euo pipefail. - Разделяйте сценарий на небольшие функции.
- Проверяйте зависимости через
command -v. - Прогоняйте код через
shellcheckперед коммитом.
Короткий чеклист
- Сценарий корректно обрабатывает пустой ввод и ошибки.
- Логи достаточно информативны для отладки.
- Пример из статьи запускается без ручных правок.
- Поведение воспроизводимо в CI/на сервере.
Итог
Тема Локальные переменные функции полезна не сама по себе, а в связке с дисциплиной: проверки, читаемая структура, логирование и тестовый прогон. Такой подход делает Bash-автоматизацию надёжной и поддерживаемой.