Sobes.tech
Back to questions
Middle
3

Ключи set в bash-скриптах для дебага (set -x, set -e и т.д.)

Companies where asked
МТСМТС

Answer from AI

sobes.tech AI

В bash для отладки и управления поведением скрипта часто используют следующие ключи команды set:

  • set -x — включает трассировку выполнения команд. Каждая команда перед выполнением выводится в stdout с подстановленными значениями переменных. Помогает понять, что именно выполняется.
  • set +x — отключает трассировку.
  • set -e — скрипт немедленно завершится при ошибке (если команда вернула ненулевой код возврата). Полезно для предотвращения продолжения работы при ошибках.
  • set -u — вызывает ошибку при использовании необъявленных переменных.
  • set -o pipefail — если в конвейере (pipe) одна из команд завершилась с ошибкой, возвращается код ошибки этой команды, а не последней.

Пример использования для отладки:

set -euxo pipefail
# -e: выход при ошибке
# -u: ошибка при необъявленных переменных
# -x: трассировка
# -o pipefail: ошибки в пайпах

some_command | another_command

Это помогает быстро выявлять ошибки и понимать ход выполнения скрипта.