如何调试bash脚本

xiaoxiao2021-02-28  152

参考:

http://blog.csdn.net/wzhwho/article/details/6415197

http://blog.csdn.net/yfkiss/article/details/8636758

1. 使用bash -x

bash -x打印出脚本执行过程中的所有语句

2. set 

有的时候,我们的脚本非常复杂,使用bash -x得到的输出太多,很难找到需要的信息 set 可以进行局部调试,在需要调试的代码之前加上“set -x”,需要调试的代码之后加上“set +x”即可 like: 修改test.sh: .... set -x awk '{sum+=1} END{print sum}' test.sh set +x ..... 运行:

3. 使用bash调试工具bashdb(Bash Debugger)

bashdb是一个类GDB的调试工具,使用GDB的同学使用bashdb基本无障碍 bashdb可以运行断点设置、变量查看等常见调试操作 bashdb需要单独安装 使用如下: $ bashdb --debug test.sh          

4. 使用日志输出

跟踪日志有时候太多了,多得都受不了,而且,输出的内容很难阅读。一般来说,我们很多时候只关心于条件表达式,变量值,或是函数调用,或是循环等。。在这种情况下,log一些感兴趣的特定的信息,可能会更好。

使用log前,我们先写一个函数:

 

[c-sharp]  view plain  copy _log() {   if [ "$_DEBUG" == "true" ]; then   echo 1>&2 "$@"   fi   }  

于是,你就可以在你的脚本中如下使用:

 

_log "Copying files..."

我们可以看到,上面那个_log函数,需要检查一个_DEBUG 变量,只有这个变量是真,才会真正开发输出日志。这样,你就只需要控制这个开关,而不需要删除你的debug信息。

 

$ _DEBUG= true . /example_script .sh

转载请注明原文地址: https://www.6miu.com/read-45660.html

最新回复(0)