如果我运行:
所以,对于ksh,诀窍是什么?
(如果没有答案,那么“正确”的答案将归于bash-o-logist。)
bash -x myscript.sh
我将获得调试输出。
但是,如果在myscript.sh
中有一个函数,则该函数中的代码对-x选项免疫。它仅向输出写入函数名称。
如何为bash脚本中的函数获取调试输出?
更新:
根据ztank1013的回答,我刚意识到我使用的是ksh,而不是bash。似乎bash在我的系统中默认启用了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。)