bash 機能のデバッグ [閉じる]

bash 機能のデバッグ [閉じる]

ここにデバッグしたい簡単な関数があります。ただし、有効にしても必要な機能をデバッグできません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()関数はスクリプトの最後で呼び出されません。ユーザーエラーです。

関連情報