zoukankan      html  css  js  c++  java
  • Shell调试篇 转

    检查语法

        -n选项只做语法检查,而不执行脚本。

        sh -n script_name.sh

    启动调试

        sh -x script_name.sh

        进入调试模式后,Shell依次执行读入的语句,产生的输出中有的带加号,有的不带,如下。带加号表示该条语句是Shell执行的。不带加号表示该语句是Shell产生的输出。

        + array=(1 2 3 4 5)

        + for i in '${array[*]}'

        + echo 1

        1

    中断调试

        在调试过程中可以按Ctrl + Z中断调试,观察结果,然后再按fg键继续调试即可。

    调试代码块

        上面的-x选项是调试整个脚本的,如果脚本很大,会很不方便,还有一种方法是调试某一块代码的,如下

        set -x

        ...

        code block

        ...

        set +x

        这样,只对set -x与set +x之间的代码进行跟踪。

    调试函数

        set -x

        Function call

        set +x

    常见错误诊断

        xxx.sh: cannot shift

        这种错误一般是参数传递有误,比如没有给参数,或者参数个数少了。因为shell脚本使用shift来获取下一个参数,如果个数不对,shift命令就会失败。

        xxx.sh: ^M: not found

        ^M是Windows上的回车符 在UNIX上的显示形式。这种情况多半是在Windows上编辑了shell脚本,然后拿到UNIX/Linux上执行。只要将文件中所有的 删除即可。

        tr -d " " <oldfile.sh > newfile.sh

        或者一个更标准的方法,因为 的ASCII码是15,所以可以这样。

        tr -d "15" < oldfile.sh > newfile.sh

  • 相关阅读:
    spring学习(一)--spring简介
    The Evolved Packet Core
    Git版本控制入门学习
    分家后中国移动运营商2G/3G频率分配
    English name
    中国互联网五大势力竞争力报告
    ping
    mysql架构
    MySQL存储引擎
    79款 C/C++开发工具开源软件
  • 原文地址:https://www.cnblogs.com/dongzhiquan/p/3594720.html
Copyright © 2011-2022 走看看