Ricerca…


Eseguire il debug di uno script bash con "-x"

Usa "-x" per abilitare l'output di debug delle linee eseguite. Può essere eseguito su un'intera sessione o script o abilitato a livello di programmazione all'interno di uno script.

Esegui uno script con l'output di debug abilitato:

$ bash -x myscript.sh

O

$ bash --debug myscript.sh

Attiva il debug all'interno di uno script bash. Può facoltativamente essere riattivato, anche se l'output di debug viene ripristinato automaticamente allo scadere dello script.

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

Controllo della sintassi di uno script con "-n"

L'opzione -n ​​ti permette di controllare la sintassi di uno script senza doverlo eseguire:

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

Debugging usigh bashdb

Bashdb è un'utilità simile a gdb, in quanto puoi fare cose come set breakpoint su una linea o su una funzione, stampare il contenuto delle variabili, puoi riavviare l'esecuzione dello script e altro ancora.

Normalmente puoi installarlo tramite il tuo gestore di pacchetti, ad esempio su Fedora:

sudo dnf install bashdb 

O prendilo dalla homepage . Quindi puoi eseguirlo con il tuo script come parametro:

bashdb <YOUR SCRIPT>

Ecco alcuni comandi per iniziare:

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

Per ulteriori informazioni, ti consiglio di consultare il manuale: http://www.rodericksmith.plus.com/outlines/manuals/bashdbOutline.html

Vedi anche homepage:
http://bashdb.sourceforge.net/



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow