ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Shell 脚本调试技术

Shell 脚本调试技术

原创 Linux操作系统 作者:ljs4053 时间:2010-12-08 15:27:27 0 删除 编辑
脚本调试的主要工作就是发现引发脚本错误的原因以及在脚本源
代码中定位发生错误的行,常用的手段包括分析输出的错误信息,通过在脚本中加入调试语句,
输出调试信息来辅助诊断错误,利用调试工具等。Shell脚本调试缺乏相应
的调试机制和调试工具的支持。我们主要使用命令来调试。
(1)echo
   通过echo来定位错误的地方,因为很难确定,当代码复杂时需要大量的echo来定位,很烦琐。
 (2)trap命令
     基本的语法是: trap 'command' signal
    shell脚本在执行时,会产生三个所谓的“伪信号”
          EXIT 从一个函数中退出或整个脚本执行完毕
          ERR 当一条命令返回非零状态时(代表命令执行不成功)
           DEBUG 脚本中每一条命令执行之前
  通过捕获EXIT信号,我们可以在shell脚本中止执行或从函数中退出时,输出某些想要   跟踪的变量的值,并由此来判断脚本的执行状态以及出错原因,其使用方法是:
trap 'command' EXIT 或 trap 'command' 0
例:
1 ERRTRAP()
2 {
3 echo "[LINE:$1] Error: Command or function exited with status $?"
4 }
5 foo()
6 {
7 return 1;
8 }
9 trap 'ERRTRAP $LINENO' ERR
10 abc
11 foo

$ sh exp1.sh
输出结果:
exp1.sh: line 10: abc: command not found
[LINE:10] Error: Command or function exited with status 127
[LINE:11] Error: Command or function exited with status 1
(3) tee命令,主要用过管道的情况。
(4)shell的执行选项
      -n 只读取shell脚本,但不实际执行
      -x 进入跟踪方式,显示所执行的每一条命令
        -c "string" 从strings中读取命令
     “-n”可用于测试shell脚本是否存在语法错误,但不会实际执行命令

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22736841/viewspace-681251/,如需转载,请注明出处,否则将追究法律责任。

下一篇: exp/imp 测试
请登录后发表评论 登录
全部评论

注册时间:2010-02-22

  • 博文量
    14
  • 访问量
    10552