bash -x myscript.sh
を実行すると、デバッグ出力が得られます。
しかし、myscript.sh
に関数がある場合、その関数のコードは-xオプションの影響を受けません。関数の名前だけを出力するように書き込みます。
bashスクリプトで関数のデバッグ出力を取得する方法は?
アップデート:
ztank1013のレスポンスに続いて、私はbashではなくkshを使用していることに気付きました。私のシステムでは、デフォルトでfunctraceオプションが有効になっているようです。(bash-o-logistに感謝します)
私は満足していますが、私はkshに対して質問を開いています。
スクリプトの場合:
#!/bin/ksh
a=2
testering(){
a=3
if [ $a -eq 3 ]; then
echo lili
fi
}
if [ $a -eq 2 ]; then
echo mimi
fi
testering
exit
ksh -x ./testdebug.sh
の出力は次のとおりです。
+ a=2
+ [ 2 -eq 2 ]
+ echo mimi
mimi
+ testering
lili
+ exit
したがって、kshの場合、どのようなトリックですか?
(答えが出ない場合、「正しい」はbash-o-logistに行きます)
良い質問、+1 – nsd