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/
- “Pro Bash Programming” Кріса Джонсона і Джаянта Варми для поглибленого скриптінгу.
- ShellCheck для статичного аналізу: https://www.shellcheck.net/