本章主要介绍一些方便的、有效的、更好的输出调试信息的方法。
本章要学习的知识点
(1)看懂脚本输出的错误信息,并逐步定位到真正的错误;
(2)如何坚持shell脚本的语法是否有错误;
(3)如何通过track模式找到程序的错误;
(4)分析脚本错误的一般步骤;
(5)如何在脚本程序中添加DEBUG支持。
当我们运行自己编写的shell脚本时,经常会遇到脚本输出错误信息。错误信息只能说明确实有错误发生,但是并不一定告诉我们错误所发生的真实原因和出错位置。因此我们需要对错误信息进行分析和推断,通常沿着报错行往前面找。
debug模式是一种检查错误的模式,本节主要介绍3中debug模式:
模式 | 选项 | 描述 |
语法检查模式 | -n | 不执行命令,只进行语法检查 |
Vebose模式 | -v | 打印shell读取的所有语句 |
Trace模式 | -x | 打印执行替换操作后shell实际执行的命令 |
进入debug模式的格式:
$/bin/bash –option filename
前面使用的进入debug模式的方法会在脚本的整个运行期间中都起到作用,如果脚本文件很长,这种方式就会产生大量的输出信息:假如我们只想对某一段代码或某一个函数进行debug调试,该如何?
解决方案:通过执行set命令可以在脚本的运行过程中打开或关闭debug模式。
它的使用方法如下:
#打开trace debug模式
set –x
#关闭trace debug模式
set +x
我们知道通过执行set –x命令可以让脚本输出debug的trace信息,但是当脚本交付使用时,删除或注释这些命令也很麻烦。因此,希望有一个开关,通过它控制是否大于debug信息。可以在脚本中使用if语句判断环境变量DEBUG的值,如果等于TRUE就执行set –x命令,如下所示:
#!/bin/bash
if [ “DEBUG”=”true”]
the
set –x
fi
echo “do stuff…”
if [ “DEBUG”=”true”]
the
set +x
fi
省略
新闻热点
疑难解答