bash调试器bashdb,这是一个类似于GDB的调试工具,可以完成对shell脚本的断点设置,单步执行,变量观察等许多功能。
安装bashdb
|
1 |
$ sudo apt-get install bashdb |
macOS下使用Homebrew安装,如下:
|
1 |
$ brew install bashdb |
有两种启动调试的方式
1.直接在bash中传递参数的方式启动,适合需要读取$0参数为shell脚本的名字的采用这种方式启动。
|
1 |
$ bash --debugger xx.sh |
2.使用bashdb直接启动脚本,适用于一般的脚本。
|
1 |
$ bashdb xx.sh |
上面的操作对于ubuntu 18.04之前的版本都是可以的,但是目前的ubuntu 18.04是没有这个包的,只能手工编译安装,参考如下命令:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ wget https://netix.dl.sourceforge.net/project/bashdb/bashdb/4.4-0.94/bashdb-4.4-0.94.tar.gz #这个网站,国内用户下载非常慢,可以本站下载 #$ wget https://www.mobibrw.com/wp-content/uploads/2016/02/bashdb-4.4-0.94.tar.gz $ tar -xvf bashdb-*.tar.gz $ cd bashdb-*/ $ ./configure $ make $ sudo make install |
常用的调试命令
- 列出代码和查询代码类:
l列出当前行以下的10行
-列出正在执行的代码行的前面10行
.回到正在执行的代码行
w列出正在执行的代码行前后的代码
/pat/向后搜索pat - Debug控制类:
h帮助
help命令 得到命令的具体信息
q退出bashdb
x算数表达式 计算算数表达式的值,并显示出来
!!空格Shell命令 参数执行shell命令
使用bashdb进行debug的常用命令(cont.) - 控制脚本执行类:
n执行下一条语句,遇到函数,不进入函数里面执行,将函数当作黑盒
s n单步执行n次,遇到函数进入函数里面
b 行号n在行号n处设置断点
d 行号n撤销行号n处的断点
c 行号n一直执行到行号n处
R重新启动
Finish执行到程序最后
cond n expr条件断点
