Shell 脚本调试技术

脚本调试的主要工作就是发现引发脚本错误的原因以及在脚本源
代码中定位发生错误的行,常用的手段包括分析输出的错误信息,通过在脚本中加入调试语句,
输出调试信息来辅助诊断错误,利用调试工具等。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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22736841/viewspace-681251/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值