第16章 Debug Shell脚本

来源:互联网 发布:移动网络投诉管理考试 编辑:程序博客网 时间:2024/06/09 20:15

本章主要介绍一些方便的、有效的、更好的输出调试信息的方法。

本章要学习的知识点

(1)看懂脚本输出的错误信息,并逐步定位到真正的错误;

(2)如何坚持shell脚本的语法是否有错误;

(3)如何通过track模式找到程序的错误;

(4)分析脚本错误的一般步骤;

(5)如何在脚本程序中添加DEBUG支持。

1.     分析报错信息

当我们运行自己编写的shell脚本时,经常会遇到脚本输出错误信息。错误信息只能说明确实有错误发生,但是并不一定告诉我们错误所发生的真实原因和出错位置。因此我们需要对错误信息进行分析和推断,通常沿着报错行往前面找。

2.     进入debug模式

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

3.     在脚本中添加debug功能

我们知道通过执行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

 

4.     使用trap命令

省略

0 0
原创粉丝点击