Bash:
Использование отладчика

Как:

Bash изначально не поставляется с встроенным отладчиком, как некоторые другие языки, но вы можете использовать встроенные команды, такие как set -x, чтобы отслеживать, что происходит. Или, как более продвинутый вариант, есть bashdb - полноценный отладчик для пошагового прохождения вашего кода. Вот короткий обзор:

# Использование set -x для отладки
set -x
echo "Начинаем отладку"
my_var="Привет, мир отладки!"
echo $my_var
set +x

# Использование bashdb
# Установите bashdb с помощью вашего менеджера пакетов, например, apt, yum, brew.
# Отладка скрипта под названием my_script.sh:
bashdb my_script.sh

Вывод при запуске с set -x:

+ echo 'Начинаем отладку'
Начинаем отладку
+ my_var='Привет, мир отладки!'
+ echo 'Привет, мир отладки!'
Привет, мир отладки!
+ set +x

Подробнее

Исторически, отладка Bash-скриптов означала разброс вашего кода по echo-сообщениям. Но затем появился set -x, давая нам возможность заглянуть в выполнение в реальном времени без ручных выводов. И для тех, кто жаждет большего контроля, появился отладчик bashdb, вдохновленный отладчиком gdb для C/C++.

Что касается альтернатив, помимо команд set (-x, -v, -e), другие опции включают перенаправление вывода в файл для анализа или использование внешних инструментов, таких как ShellCheck, для статического анализа.

С точки зрения реализации, set -x прост в использовании; это нативная опция Bash, которая выводит команды и их аргументы по мере исполнения. bashdb, с другой стороны, позволяет пошагово проходить через код, устанавливать точки останова и оценивать выражения - вещи, которые дают вам шанс в борьбе с более неуловимыми ошибками.

Смотрите также

  • Проект Bash Debugger: http://bashdb.sourceforge.net/
  • “Профессиональное программирование на Bash” от Криса Джонсона и Джаянта Вармы для продвинутого скриптинга.
  • ShellCheck для статического анализа: https://www.shellcheck.net/