[size=xx-large]前言[/size]
linux调试shell是件蛋疼的事,比如现在有个脚本。
#!/bin/sh
echo "hello world"
NAME="piaohailin"
echo $NAME;
一般调试的话,要用-x参数
sh -x test.sh
输出
+ echo 'hello world'
hello world
+ NAME=piaohailin
+ echo piaohailin
piaohailin
其中,带“+”号的表示执行的代码,如图
[img]http://dl2.iteye.com/upload/attachment/0112/2000/1c41e902-fcb4-31a1-aa61-a4facd7b99fb.png[/img]
[size=xx-large]断点调试[/size]
调试shell工具
http://bashdb.sourceforge.net/
教程
http://blog.chinaunix.net/uid-24993439-id-3350742.html
解压源码,在源码目录下执行./configure,即可生成二进制命令文件
./bashdb --debug /opt/soft/test.sh
输出结果
[img]http://dl2.iteye.com/upload/attachment/0112/2036/bb29dd82-046b-33ff-a0a1-eab430e9a12c.png[/img]
常用的命令
n:执行下一步
l:显示上下文代码
finish:执行到最后
print:变量名,例如 $a
linux调试shell是件蛋疼的事,比如现在有个脚本。
#!/bin/sh
echo "hello world"
NAME="piaohailin"
echo $NAME;
一般调试的话,要用-x参数
sh -x test.sh
输出
+ echo 'hello world'
hello world
+ NAME=piaohailin
+ echo piaohailin
piaohailin
其中,带“+”号的表示执行的代码,如图
[img]http://dl2.iteye.com/upload/attachment/0112/2000/1c41e902-fcb4-31a1-aa61-a4facd7b99fb.png[/img]
[size=xx-large]断点调试[/size]
调试shell工具
http://bashdb.sourceforge.net/
教程
http://blog.chinaunix.net/uid-24993439-id-3350742.html
解压源码,在源码目录下执行./configure,即可生成二进制命令文件
./bashdb --debug /opt/soft/test.sh
输出结果
[img]http://dl2.iteye.com/upload/attachment/0112/2036/bb29dd82-046b-33ff-a0a1-eab430e9a12c.png[/img]
常用的命令
n:执行下一步
l:显示上下文代码
finish:执行到最后
print:变量名,例如 $a