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