Shell调试工具bashdb
一、什么是bashdb
bash是Unix/Linux操作系统最常用的shell之一,bash脚本经常用于编写批处理工具。
一般地,编写bash脚本时,也需要进行debug,通常会加一些print或者echo进行脚本调试,调试结束后还需要删除这些调试代码。
实际上,linux环境下也有类似gdb的工具用于调试bash脚本。这其中,bashdb相对来说更易于使用,使用方法也十分类似gdb。
bashdb开源,基于GLPv2协议。
二、编译安装bashdb
2.1 bashdb项目主页
2.2 下载源码
https://sourceforge.net/projects/bashdb/files/bashdb/
需要注意的是,不同版本的bashdb对bash版本有要求,bashdb 5.0以上版本要求安装环境的bash版本也是5.0以上版本。
[root@node29 ~]# bash --version
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
2.3 编译安装
本文以bashdb-4.4-1.0.1版本为例,其它版本类似。
[root@node29 ~]# tar -xf bashdb-4.4-1.0.1.tar.bz2
[root@node29 ~]# cd bashdb-4.4-1.0.1
[root@node29 bashdb-4.4-1.0.1]# ./configure
[root@node29 bashdb-4.4-1.0.1]# make
[root@node29 bashdb-4.4-1.0.1]# make install
[root@node29 bashdb-4.4-1.0.1]# bashdb --version
bashdb, release 4.4-1.0.1
三、bashdb使用示例
以下以一个简单调试为例,演示bashdb使用方法,详细内容请参考bashdb用户手册。
[root@node29 CORED]# bashdb --debug /root/tools.sh
bash debugger, bashdb, release 4.4-1.0.1
Copyright 2002-2004, 2006-2012, 2014, 2016-2018 Rocky Bernstein
This is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Reading /root/tools.sh done.
(/root/tools.sh:11):
11: LOG_DIR="./tools_log"
bashdb<0> b 1095
Breakpoint 1 set in file /root/tools.sh, line 1095.
bashdb<1> c
Breakpoint 1 hit (1 times).
(/root/tools.sh:1095):
1095: func_sel="$1"
bashdb<2> n
(/root/tools.sh:1098):
1098: lioc_dmc_prep
bashdb<3> print $func_sel
1
bashdb<4> q
bashdb: That's all, folks...
四、more…
如果想要进一步使用IDE调试bash脚本,可以在图形界面下,安装DDD。
详情参考:http://www.gnu.org/software/ddd/