• Linux Shell 脚本调试


    方法如下所示:
    (1) 使用选项–x,启用shell脚本的跟踪调试功能:
    $ bash -x script.sh
    运行带有-x标志的脚本可以打印出所执行的每一行命令以及当前状态。注意,你也可以使用sh -x script。

    (2) 使用set -x和set +x对脚本进行部分调试。例如:
    #!/bin/bash
    #文件名: debug.sh
    for i in {1..6};
    do
    set -x
    echo $i
    set +x
    done
    echo "Script executed"
    在上面的脚本中,只会打印出echo $i的调试信息,因为使用了-x和+x对调试区域进行了限制。

    (3) 前面介绍的调试手段是Bash内建的。它们通常以固定的格式生成调试信息。但是在很多情况下,我们需要以自定义格式显示调试信息。这可以通过传递 _DEBUG环境变量来建立这类调试风格。
    请看下面的代码:

    #!/bin/bash
    function DEBUG()
    {
    [ "$_DEBUG" == "on" ] && $@ || :
    }
    for i in {1..10}
    do
    DEBUG echo $i
    done

    可以将调试功能置为"on"来运行上面的脚本:
    $ _DEBUG=on ./script.sh
    我们在每一个需要打印调试信息的语句前加上DEBUG。如果没有把 _DEBUG=on传递给脚本,那么调试信息就不会打印出来。在Bash中,命令“:”告诉shell不要进行任
    何操作。

    附注:

    1.  -x标识将脚本中执行过的每一行都输出到stdout。不过,我们也可能只关注脚本某些部分
    的命令及参数的打印输出。针对这种情况,可以在脚本中使用set builtin来启用或禁止调试
    打印。
     set –x:在执行时显示参数和命令。
     set +x:禁止调试。
     set –v:当命令进行读取时显示输入。
     set +v:禁止打印输入。

    2. shebang的妙用
    把shebang从#!/bin/bash改成 #!/bin/bash -xv,这样一来,不用任何其他选项就可以
    启用调试功能了。

  • 相关阅读:
    第一次作业-准备篇
    个人作业——软件工程实践总结&个人技术博客
    个人技术总结-spring boot编写接口和数据返回
    个人作业——软件评测
    结对第二次作业——某次疫情统计可视化的实现
    结对第一次—疫情统计可视化(原型设计)
    软工实践寒假作业(2/2)
    软工实践寒假作业(1/2)
    个人作业-软件工程实践总结
    Android实现多图选择
  • 原文地址:https://www.cnblogs.com/besharp/p/6108667.html
Copyright © 2020-2023  润新知