ここにデバッグしたい簡単な関数があります。ただし、有効にしても必要な機能をデバッグできませんset -o functrace
。この質問をする前に、期待した結果が得られない可能性のある解決策を見つけました。ここ。
私の機能をデバッグするためにbashを取得するにはどうすればよいですか?
#!/bin/bash
echo "Hello World"
hello() {
echo "Hello world"
}
出力:
user@mac11:53:29~/desktop bash -x debug.sh
+ echo 'Hello World'
Hello World
user@mac11:54:55~/desktop
答え1
しかし、リンクの答えがうまくいくようです...
Kaizen ~/so_test $ cat zhello.sh
set -x ;
set -o functrace
hello()
{
name=$1;
echo "Hello , how are you $name";
}
hello "itin" ;
出力は次のとおりです
Kaizen ~/so_test $ ./zhello.sh
+ ./zhello.sh -- script was run
++ set -o functrace
++ hello itin -- function was invoked
++ name=itin -- variable assigned within the function hello
++ echo 'Hello , how are you itin'
Hello , how are you itin -- printed the output from the function ...
少し気になります。特に探しているものはありますか?
答え2
hello()
関数はスクリプトの最後で呼び出されません。ユーザーエラーです。