ℹ️ Обычно, если в Bash-скрипте одна из команд завершается с ошибкой, скрипт либо падает (set -e), либо продолжает работать, но без уведомлений. А что, если мы хотим, чтобы скрипт продолжал выполнение, но при этом логировал ошибки?
⚡️ Решение: используем trap для перехвата ошибок и логирования
Добавь это в свой скрипт:
#!/bin/bash
LOGFILE="error.log"
# Функция для логирования ошибок
error_handler() {
echo "[ERROR] Команда \"$BASH_COMMAND\" завершилась с кодом $?" | tee -a "$LOGFILE"
}
# Перехватываем ошибки и вызываем обработчик
trap 'error_handler' ERR
# Пример команд (одна из них с ошибкой)
echo "Запускаем команды..."
ls /nonexistent_folder # Ошибочная команда
echo "Команды продолжают выполняться!"ℹ️ Как это работает?
trap'error_handler'ERR— перехватывает все ошибки.BASH_COMMAND— это последняя выполненная команда, которая вызвала ошибку.- Скрипт продолжает выполнение даже после ошибки, но все ошибки логируются в
error.log.
🔥 Где это полезно?
- В CI/CD пайплайнах, где важны логи ошибок, но скрипт не должен падать.
- В автоматизированных задачах (бэкапы, мониторинг).
- В сложных установочных скриптах.
tags: #логирование #bash #linux
🧭 @recura_tech



