debugging – bash:debug选项和函数

前端之家收集整理的这篇文章主要介绍了debugging – bash:debug选项和函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我跑
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.)

使用bash,您可以在脚本中使用functrace选项
set -o functrace

有关其他调试器选项,请参阅bpage以获取bash.

猜你在找的Bash相关文章