所以这里我有一个简单的函数要调试。但是,即使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)
我有点好奇,你要找什么具体的东西吗?