Sök…


Felsöka ett bash-skript med "-x"

Använd "-x" för att aktivera felsökning av exekverade linjer. Det kan köras på en hel session eller skript, eller aktiveras programmatiskt inom ett skript.

Kör ett skript med felsökningsutgång aktiverad:

$ bash -x myscript.sh

Eller

$ bash --debug myscript.sh

Aktivera felsökning i ett bash-skript. Det kan eventuellt slås på igen, men felsökningsutdata återställs automatiskt när skriptet slutar.

#!/bin/bash
set -x   # Enable debugging
# some code here
set +x   # Disable debugging output. 

Kontrollera syntaxen för ett skript med "-n"

Flaggan -n låter dig kontrollera syntaxen för ett skript utan att behöva köra det:

~> $ bash -n testscript.sh
testscript.sh: line 128: unexpected EOF while looking for matching `"'
testscript.sh: line 130: syntax error: unexpected end of file

Felsökning väg bashdb

Bashdb är ett verktyg som liknar gdb, genom att du kan göra saker som att sätta brytpunkter på en rad eller vid en funktion, skriva ut innehåll i variabler, du kan starta om skriptkörning och mer.

Du kan normalt installera det via din pakethanterare, till exempel på Fedora:

sudo dnf install bashdb 

Eller hämta det från hemsidan . Sedan kan du köra det med ditt skript som en paramater:

bashdb <YOUR SCRIPT>

Här är några kommandon för att komma igång:

l - show local lines, press l again to scroll down
s - step to next line 
print $VAR - echo out content of variable 
restart - reruns bashscript, it re-loads it prior to execution.
eval - evaluate some custom command, ex: eval echo hi

b <line num> set breakpoint on some line 
c - continue till some breakpoint 
i b - info on break points 
d <line #> - delete breakpoint at line #

shell - launch a sub-shell in the middle of execution, this is handy for manipulating variables

För mer information rekommenderar jag att du läser manualen: http://www.rodericksmith.plus.com/outlines/manuals/bashdbOutline.html

Se även hemsida:
http://bashdb.sourceforge.net/



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow