Bash:
Att använda en debugger

Hur man gör:

Bash kommer inte med en inbyggd debugger som vissa andra språk, men du kan använda inbyggda kommandon som set -x för att spåra vad som händer. Eller, för en uppgradering, finns det bashdb, en riktig debugger för att stega igenom din kod. Här är en titt:

# Använder set -x för att felsöka
set -x
echo "Startar felsökning"
my_var="Hej, felsökningsvärlden!"
echo $my_var
set +x

# Använder bashdb
# Installera bashdb med din pakethanterare, t.ex., apt, yum, brew.
# Felsök ett skript som kallas my_script.sh:
bashdb my_script.sh

Utskrift när man kör med set -x:

+ echo 'Startar felsökning'
Startar felsökning
+ my_var='Hej, felsökningsvärlden!'
+ echo 'Hej, felsökningsvärlden!'
Hej, felsökningsvärlden!
+ set +x

Djupdykning

Historiskt sett innebar felsökning av Bash-skript att man strödde koden med echo-utskrifter. Men sedan kom set -x, som gav oss en titt in i körningsexekveringen utan manuella utskrifter. Och för de som längtar efter mer kontroll dök bashdb-debuggern upp, inspirerad av gdb-debuggern för C/C++.

När det gäller alternativ, bortom set-kommandona (-x, -v, -e), inkluderar andra alternativ att omdirigera utskriften till en fil för analys eller att använda externa verktyg som ShellCheck för statisk analys.

Implementeringsmässigt är set -x enkelt; det är ett inbyggt Bash-alternativ som skriver ut kommandon och deras argument när de utförs. bashdb, å andra sidan, tillåter stegning genom kod, att sätta brytpunkter och att evaluera uttryck - saker som ger dig en stridande chans mot mer undvikande buggar.

Se även