Bash:
Å bruke en feilsøker
Hvordan:
Bash kommer ikke med en innebygd feilsøker som noen andre språk, men du kan bruke innebygde kommandoer som set -x
for å spore hva som skjer. Eller, for en oppgradering, er det bashdb
, en ordentlig feilsøker for å gå gjennom koden din. Her er en titt:
# Bruker set -x for feilsøking
set -x
echo "Start feilsøking"
my_var="Hallo, Feilsøkingsverden!"
echo $my_var
set +x
# Bruker bashdb
# Installer bashdb med pakkebehandleren din, f.eks., apt, yum, brew.
# Feilsøk et skript kalt my_script.sh:
bashdb my_script.sh
Output når man kjører med set -x
:
+ echo 'Start feilsøking'
Start feilsøking
+ my_var='Hallo, Feilsøkingsverden!'
+ echo 'Hallo, Feilsøkingsverden!'
Hallo, Feilsøkingsverden!
+ set +x
Dypdykk
Historisk sett betød feilsøking av Bash-skript at man strødde koden sin med echo
-utsagn. Men så kom set -x
, som ga oss en titt inn i kjøretidsutførelsen uten manuelle utskrifter. Og for de som ønsker mer kontroll, dukket feilsøkeren bashdb
opp, inspirert av gdb-feilsøkeren for C/C++.
Når det gjelder alternativer, utover set
-kommandoene (-x
, -v
, -e
), inkluderer andre alternativer å omdirigere utdata til en fil for analyse eller å bruke eksterne verktøy som ShellCheck for statisk analyse.
Når det kommer til implementering, er set -x
enkelt; det er et nativt Bash-alternativ som skriver ut kommandoer og deres argumenter etter hvert som de utføres. bashdb
, på den annen side, tillater steg-for-steg gjennomgang av kode, å sette brytepunkter, og å evaluere uttrykk - ting som gir deg en kampmulighet mot mer unnvikende feil.
Se Også
- Bash Debugger Project: http://bashdb.sourceforge.net/
- “Pro Bash Programming” av Chris Johnson og Jayant Varma for avansert skripting.
- ShellCheck for statisk analyse: https://www.shellcheck.net/