Debug Ausgabe erleichtern

02/08/2010 - 14:03 von Mike Sephan | Report spam
Ich möchte gerne Debug ausgaben meiner Skripte erleichtern. Bisher hab
ich immer eine if Schleife gemacht und dann den Programmverlauf einmal
als Debug Version und dann als Ausführende. Das wird mir aber langsam zu
anstrengend das zu warten. "set -x" hilft da nicht soviel. Deswegen
arbeite ich jetzt an einer besseren Variante. Wie der hier:

# Debug-Hebel
debug=1

# Befehle Debug
if [ $debug -eq 1 ]; then
echo=echo
fi

# Nachrichten Debug
dbg_msg ()
{
if [ $debug -eq 1 ]; then
echo "${*}"
fi
}

## Test der Ausgabe
# Nachrichten
dbg_msg "sage was: $debug \ asdf"
# Befehle
$echo pwd


Gibts dazu Verbesserungsvorschlàge?
 

Lesen sie die antworten

#1 Helmut
02/08/2010 - 14:21 | Warnen spam
Hallo, Mike,

Du meintest am 02.08.10:


Ich möchte gerne Debug ausgaben meiner Skripte erleichtern. Bisher
hab ich immer eine if Schleife gemacht und dann den Programmverlauf
einmal als Debug Version und dann als Ausführende. Das wird mir aber
langsam zu anstrengend das zu warten. "set -x" hilft da nicht soviel.
Deswegen arbeite ich jetzt an einer besseren Variante. Wie der hier:

# Debug-Hebel
debug=1



[...]

## Test der Ausgabe
# Nachrichten
dbg_msg "sage was: $debug \ asdf"
# Befehle
$echo pwd


Gibts dazu Verbesserungsvorschlàge?



Meine übliche Lösung:

# ganz oben im Skript
debug=0
test $debug -ne 0 && set -x
export SHELLOPTS

Debugpause(){
test $debug -eq 0 && return
echo Zeile $1
read -t 10 -p "weiter " dummy
}

function Pause {
test "$debug" || return 0
test "$debug" -eq 1 || return 0
local dummy
read -p "Zeile $1; weiter " dummy
}

# ...

# irgendwo im Skript

Debugpause $LINENO
# oder
Pause $LINENO

#

In meinen Skripts arbeite ich oft mit "dialog"; da muss ich stets vorher
"set +x" verordnen. Sollte sich umstellen lassen (irgendwas mit
Fehlerkanal), aber noch ist der Leidensdruck nicht gross genug.

Viele Gruesse
Helmut

"Ubuntu" - an African word, meaning "Slackware is too hard for me".

Ähnliche fragen