加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

debugging – bash:debug选项和函数

发布时间:2020-12-16 01:08:57 所属栏目:安全 来源:网络整理
导读:如果我跑 bash -x myscript.sh 我会得到调试输出. 但是如果我在myscript.sh中有一个函数,函数中的代码不受-x选项的影响.它只写输出函数的名称. 如何获取bash脚本中函数的调试输出? 更新: 在ztank1013的回复之后,我才意识到我使用了ksh,而不是bash.似乎bash
如果我跑
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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读