Shell调试工具bashdb

由 FairyFar 发布

一、什么是bashdb

bash是Unix/Linux操作系统最常用的shell之一,bash脚本经常用于编写批处理工具。
一般地,编写bash脚本时,也需要进行debug,通常会加一些print或者echo进行脚本调试,调试结束后还需要删除这些调试代码。
实际上,linux环境下也有类似gdb的工具用于调试bash脚本。这其中,bashdb相对来说更易于使用,使用方法也十分类似gdb。
bashdb开源,基于GLPv2协议。

二、编译安装bashdb

2.1 bashdb项目主页

bashdb.sourceforge.net

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/



打赏作者以资鼓励: