Bash:
Debuggerin käyttö
Miten:
Bash ei sisällä sisäänrakennettua debuggeria kuten jotkin muut kielet, mutta voit käyttää sisäänrakennettuja komentoja kuten set -x seurataksesi, mitä tapahtuu. Tai, parannuksena, on olemassa bashdb, asianmukainen debuggeri koodin läpikäymiseen. Tässä esikatsaus:
# Debuggauksen käyttö set -x:n avulla
set -x
echo "Aloitetaan debuggaus"
my_var="Hei, Debuggaus Maailma!"
echo $my_var
set +x
# Käyttäen bashdb:tä
# Asenna bashdb paketinhallintasi avulla, esim., apt, yum, brew.
# Debuggaa skriptiä nimeltä my_script.sh:
bashdb my_script.shTuloste, kun ajetaan käyttäen set -x:
+ echo 'Aloitetaan debuggaus'
Aloitetaan debuggaus
+ my_var='Hei, Debuggaus Maailma!'
+ echo 'Hei, Debuggaus Maailma!'
Hei, Debuggaus Maailma!
+ set +xSyväsukellus
Historiallisesti Bash-skriptien debuggaus tarkoitti koodisi täyttämistä echo-lauseilla. Mutta sitten tuli set -x, joka antoi meille kurkistuksen suoritusaikaan manuaalisia tulosteita vaatimatta. Ja niille, jotka kaipaavat enemmän kontrollia, ilmestyi bashdb-debuggeri, joka sai inspiraationsa gdb-debuggerista C/C++:lle.
Vaihtoehtojen osalta, set-komentojen (-x, -v, -e) lisäksi, muita vaihtoehtoja sisältävät tulosteen ohjaaminen tiedostoon analyysia varten tai ulkoisten työkalujen, kuten ShellCheckin, käyttäminen staattiseen analyysiin.
Toteutuksen kannalta, set -x on helppo; se on natiivi Bash-vaihtoehto, joka tulostaa komentoja ja niiden argumentteja niiden suoritushetkellä. bashdb puolestaan mahdollistaa koodin läpikäymisen, katkaisupisteiden asettamisen ja lausekkeiden arvioinnin - asioita, jotka antavat sinulle taistelumahdollisuuden hankalampia bugeja vastaan.
Katso Myös
- Bash Debugger -projekti: http://bashdb.sourceforge.net/
- “Pro Bash Programming” kirjoittanut Chris Johnson ja Jayant Varma edistyneeseen skriptaukseen.
- ShellCheck staattiseen analyysiin: https://www.shellcheck.net/