shell编程关于程序调试一些注意点
来源:互联网 发布:mac应用程序卸载不了 编辑:程序博客网 时间:2024/05/23 22:47
由于shell语言是一门解释型语言,不同于java等的编译语言,它是由上倒下的执行,对于我们写的一些代码,需要进行错误调试.
常见的方式有:1.sh -n +可执行的脚本2.sh -x +可执行的脚本3.可以在脚本中增加一个sleep.
4.使用调试工具:-bashdb.具体做法:
该工具默认未安装,当前最新版本为:4.4-0.92,下载目录:http://bashdb.sourceforge.NET/
1). 如果是ubuntu系统,直接用apt-get来安装
apt-get install bashdb
2). 如果是Centos等版本,使用windows下载后,编译,安装,大致步骤如下:
下载:https://sourceforge.net/projects/bashdb/files/bashdb/
[root@hadoop007 ~]# tar -xzvf bashdb-4.4-0.92.tar.gz-C /usr/src
[root@hadoop007 ~]# cd/usr/src/bashdb-4.4-0.92
[root@hadoop007 ~]# ./configure
[root@hadoop007 ~]# make install
调试实例:
vi /home/test1.sh
#!/bin/bash
echo"----------------begin-----------------"
MAX=3
for ((i = 0; i < MAX; i++))
do
nowdate=`date -d"-$i day" +%Y-%m-%d`
echo $nowdate
done
echo"----------------end-----------------"
调试命令:
./bashdb --debugger /home/test.sh
[root@hadoop007 bashdb-4.4-0.92]# ./bashdb--debugger /home/test.sh
bash debugger, bashdb, release 4.4-0.92
Copyright 2002, 2003, 2004, 2006-2012, 2014Rocky Bernstein
This is free software, covered by the GNUGeneral Public License, and you are
welcome to change it and/or distributecopies of it under certain conditions.
(/home/test.sh:3):
3: echo"----------------begin-----------------"
bashdb<0> n #执行下一条语句
----------------begin-----------------
(/home/test.sh:4):
4: MAX=3
bashdb<1> l #列出当前行上下各5行,总共10行
1: #!/bin/bash
2:
3: echo"----------------begin-----------------"
4:=> MAX=3
5: for ((i = 0; i < MAX;i++))
6: do
7: nowdate=`date -d"-$iday" +%Y-%m-%d`
8: echo $nowdate
9: done
10: echo "----------------end-----------------"
bashdb<2> b 7 #在行号为7的行设置断点
Breakpoint 1 set in file /home/test.sh,line 7.
bashdb<3> c #继续运行
Breakpoint 1 hit (1 times).
(/home/test.sh:7):
7: nowdate=`date -d"-$i day"+%Y-%m-%d`
bashdb<4> print $i
0
bashdb<5> n
(/home/test.sh:8):
8: echo $nowdate
bashdb<6> print $nowdate
2017-03-20
bashdb<7> c 10 #单步往下运行10步
One-time breakpoint 2 set in file/home/test.sh, line 10.
2017-03-20
Breakpoint 1 hit (2 times).
(/home/test.sh:7):
7: nowdate=`date -d"-$i day"+%Y-%m-%d`
bashdb<8> finish #运行到结束
Breakpoint 1 hit (3 times).
(/home/test.sh:7):
7: nowdate=`date -d"-$i day"+%Y-%m-%d`
date -d"-$i day" +%Y-%m-%d
bashdb<(9)> finish
2017-03-19
Breakpoint 1 hit (4 times).
(/home/test.sh:7):
7: nowdate=`date -d"-$i day"+%Y-%m-%d`
bashdb<10> finish
Breakpoint 1 hit (5 times).
(/home/test.sh:7):
7: nowdate=`date -d"-$i day"+%Y-%m-%d`
date -d"-$i day" +%Y-%m-%d
bashdb<(11)> finish
2017-03-18
(/home/test.sh:10):
10: echo"----------------end-----------------"
bashdb<12> q #退出
bashdb: That's all, folks...
【常用命令】
l 列出当前行上下各5行,总共10行
q|quit 退出
h 帮助
/for/ 向后搜索字符串for
?for? 向前搜索字符串for
x 1+2 计算算术表达式的值
!! ls -laRt 执行shell命令
n 执行下一条语句
s 4 单步执行4次,如遇到函数则进入函数里面
b 4 在行号4处设置断点
del 4 删除行号为4的断点
c 10 一直执行到行号10处
R|run 重新执行当前调试脚本
finish 执行到程序最后
- shell编程关于程序调试一些注意点
- 关于java编程的一些注意点
- shell编程注意点
- shell编程注意点
- 关于linux nand 驱动调试的一些注意点
- 关于linux nand 驱动调试的一些注意点
- 关于linux nand 驱动调试的一些注意点
- Shell编程注意点 ( by quqi99 )
- 程序优化注意的一些点
- 关于AjaxPro的一些注意点
- 关于UIWebview的一些注意点
- 关于Django QuerySet的一些注意点
- 关于C++引用的一些注意点
- 关于GIT的一些注意点
- 关于C++引用的一些注意点
- 关于json的一些注意点
- [SHELL] 注意点和一些常用方法(不断更新)
- 关于shell 的一些调试问题
- Camera使用-实现简单的自定义相机
- Merged Manifest合并清单的效果并找出冲突错误
- svn代码管理中 需要提交哪些文件
- Self join
- 精雕细琢——全方位解析工厂模式
- shell编程关于程序调试一些注意点
- 肖磊看市:剖析比特币交易所监管背后真相,为何取缔并非最佳策略
- UGUI_Text_Gradient: GradientLeftToRight / GradientTopToBottom
- 基于OMAPL138的linux平台8250快速串口实现--UART+EDMA
- finalize()方法解密
- Android APP中卸载其他APP的三种方法
- BZOJ 1150 数据备份Backup
- 关于Google Earth Engine(GEE)学习笔记搬家说明
- 淘宝分布式文件系统TFS设计