Bash:
Korzystanie z debugera
Jak to zrobić:
Bash nie jest wyposażony w wbudowany debugger, tak jak niektóre inne języki, ale można użyć wbudowanych poleceń takich jak set -x
, aby śledzić, co się dzieje. Lub, jako ulepszenie, jest dostępny bashdb
, właściwy debugger umożliwiający krok po kroku przeglądać kod. Oto mały podgląd:
# Użycie set -x do debugowania
set -x
echo "Rozpoczęcie debugowania"
my_var="Witaj, świecie debugowania!"
echo $my_var
set +x
# Użycie bashdb
# Zainstaluj bashdb za pomocą menedżera pakietów, np. apt, yum, brew.
# Debuguj skrypt o nazwie my_script.sh:
bashdb my_script.sh
Wynik podczas uruchamiania z set -x
:
+ echo 'Rozpoczęcie debugowania'
Rozpoczęcie debugowania
+ my_var='Witaj, świecie debugowania!'
+ echo 'Witaj, świecie debugowania!'
Witaj, świecie debugowania!
+ set +x
Głębsze zanurzenie
Historycznie, debugowanie skryptów Bash oznaczało zasypywanie kodu instrukcjami echo
. Ale potem pojawiło się set -x
, dające nam wgląd w wykonanie w czasie rzeczywistym bez ręcznych wydruków. Dla tych, którzy pragną większej kontroli, pojawił się debugger bashdb
, inspirowany debuggerem gdb dla C/C++.
Jeśli chodzi o alternatywy, poza poleceniami set
(-x
, -v
, -e
), inne opcje obejmują przekierowanie wyjścia do pliku do analizy lub użycie zewnętrznych narzędzi takich jak ShellCheck do statycznej analizy.
Pod względem implementacji, set -x
jest łatwe; to natywna opcja Bash, która drukuje polecenia i ich argumenty w momencie wykonywania. Z drugiej strony, bashdb
umożliwia przeglądanie kodu krok po kroku, ustawianie punktów przerwania i ocenianie wyrażeń - rzeczy, które dają ci szansę w walce z bardziej nieuchwytnymi błędami.
Zobacz także
- Projekt Debuggera Bash: http://bashdb.sourceforge.net/
- “Pro Bash Programming” autorstwa Chrisa Johnsona i Jayanta Varmy dla zaawansowanego skryptowania.
- ShellCheck do statycznej analizy: https://www.shellcheck.net/