【功能】
:
提供跟踪执行信息,将执行脚本的过程中把实际执行的每个命令显示出来,行首显示+,+后面显示经过替换之后的命令行内容,有助于分析实际执行的是什么命令.
【
场合
】
:
是调试Shell脚本的强有力工具,是Shell脚本首选的调试手段
【
示例
】
:
-
在命令行提供参数:
sh -x script.sh
-
脚本开头提供参数:
#!/bin/sh -x
-
在脚本中用set命令启用or禁用参数:其中
set -x
表启用,
set +x
表禁用
方式三: 通过test的方式
备注: 利用test方法可以检查逻辑操作符,文件状态,字符串,数值测试!返回值0为真,其他任何值为假
方式四: 通过trap来调试
【作用】
:
用于捕获指定的信号并执行预定义的命令
【语法】
:
trap 'command' signal
【说明】
:
signal是要捕获的信号,command是捕获到指定的信号,所要执行的命令, 可以用kill -l命令看到系统中全部 可用的信号名,捕获信号后所执行的命令, 可以是一条或多条合法的Shell语句,也可以是一个函数名,Shell脚本执行时,会产生三个伪信号(非操作系统产生,而仅是shell本身产生,称之为伪信息),通过使用trap捕获这三个伪信号并输出信息对调试大有帮助
SHELL
三个伪信号
从一个函数中退出或整个执行完毕
当一个命令执行不成功,返回非0状态时
DEBUG
脚本中每一条命令执行之前
【示例】
:
方式五: 使用调试工具-bashdb
【功能】
:
类似于GDB的调试工具,可以完成对shell脚本的断点设置,单步执行,变量观察等许多功能
【
场合
】
:
脚本比较大时,通过-x参数调试时已不方便时.
【
用法
】
:
-
bashdb -c script.sh
-
bashdb script.sh
-
bashdb --debugger script.sh
【
说明
】
:
该工具默认未安装,当前最新版本为:
4.3-0.91,
下载目录
:
http://bashdb.sourceforge.net/
1). 如果是ubuntu系统,直接用
apt-get
来安装
2). 如果是Readhat等版本,使用wget下载后,编译,安装,大致步骤如下:
-
wget https://sourceforge.net/projects/bashdb/files/bashdb/4.3-0.91/bashdb-4.3-0.91.tar.bz2
-
tar -xzvf bashdb-4.3-0.91.tar.bz2
-
cd bashdb-4.3-0.91
-
./configure
-
make && make install
【
示例
】
:
【
常用命令
】
-
l 列出当前行以下的10行
-
q|quit 退出
-
h 帮助
-
/for/ 向后搜索字符串for
-
?for? 向前搜索字符串for
-
x 1+2 计算算术表达式的值
-
!! ls -laRt 执行shell命令
-
n 执行下一条语句
-
s 4 单步执行4次,如遇到函数则进入函数里面
-
b 4 在行号4处设置断点
-
del 4 删除行号为4的断点
-
c 10 一直执行到行号10处
-
R|run 重新执行当前调试脚本
-
finish 执行到程序最后
脚本调试的主要工作就是发现引发脚本错误的原因以及脚本源代码中定位错误行.方式一: 通过echo方式【功能】: 最简单的调试方法,可以在任何怀疑出错的地方用echo打印变量【场合】: 所有怀疑可能有问题的地方,省略了所有【示例】:echo $VAR方式二: 通过选项方式-n 功能: 读取shell脚本,但不实际执行场合: 用于测试Shell脚本中
以下是一些关于
shell
脚本
的书籍推荐:
1.《Linux
Shell
脚本
攻略》:本书详细介绍了
shell
脚本
的基础知识、语法、常用命令和实战
技巧
,适合初学者和有一定经验的读者。
2.《Linux命令行与
Shell
脚本
编程大全》:本书介绍了Linux命令行的基础知识和常用命令,同时也详细讲解了
shell
脚本
的编写和
调试
技巧
,适合初学者和进阶读者。
3.《
Shell
脚本
编程实战》:本书通过实例讲解了
shell
脚本
的编写和应用,包括系统管理、网络管理、日志分析等方面,适合有一定经验的读者。
4.《
Shell
脚本
范例大全》:本书收录了大量实用的
shell
脚本
范例,涵盖了系统管理、网络管理、安全管理等方面,适合有一定经验的读者。
5.《
Shell
脚本
攻略》:本书介绍了
shell
脚本
的基础知识和常用命令,同时也讲解了
shell
脚本
的高级应用和
调试
技巧
,适合有一定经验的读者。