最近发现一个调试shell脚本的好助手,bashddb.
下载地址:
https://sourceforge.net/projects/bashdb/files/
然后选择bashdb
然后在自己电脑上看bash的版本
bash --version
bash --version
GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2019 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.
我的是5.0.17,那么我选择5.0-1.1.2版本的bashdb下载。
./configure
make
make install
就可以用了
bashdb --debug xx.sh
然后输入下列bashdb命令:
一、列出代码和查询代码类:
l 列出当前行以下的10行
- 列出正在执行的代码行的前面10行
. 回到正在执行的代码行
w 列出正在执行的代码行前后的代码
/pat/ 向后搜索pat
? pat?向前搜索pat
二、Debug控制类:
h 帮助
help 命令 得到命令的具体信息
q 退出bashdb
x 算数表达式 计算算数表达式的值,并显示出来
!! 空格Shell命令 参数 执行shell命令
使用 bashdb进行debug的常用命令(cont.)
三、控制脚本执行类:
n 执行下一条语句,遇到函数,不进入函数里面执行,将函数当作黑盒
s n 单步执行n次,遇到函数进入函数里面
b 行号n 在行号n处设置断点
del 行号n 撤销行号n处的断点
c 行号n 一直执行到行号n处
R 重新启动当前调试脚本
Finish 执行到程序最后
cond n expr 条件断点