调试 bash 函数

Bra*_* D. 6 shell bash

所以这里我有一个简单的函数要调试。但是,即使set -o functrace启用,我也无法调试所需的功能。在提出这个问题之前,我已经设法找到了一个没有产生预期结果的可能解决方案,它位于此处

如何让 bash 调试我的功能?

#!/bin/bash
echo "Hello World"
hello() {
    echo "Hello world"
}
Run Code Online (Sandbox Code Playgroud)

输出:

user@mac11:53:29~/desktop bash -x debug.sh 
+ echo 'Hello World'
Hello World
user@mac11:54:55~/desktop 
Run Code Online (Sandbox Code Playgroud)

小智 5

但链接中的答案似乎确实有效......

  Kaizen ~/so_test $ cat zhello.sh
  set -x ;
  set -o functrace

  hello()
  {
   name=$1;
   echo "Hello , how are you $name";
 }

 hello "itin" ;
Run Code Online (Sandbox Code Playgroud)

输出是:

 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 ...
Run Code Online (Sandbox Code Playgroud)

我有点好奇,你要找什么具体的东西吗?