Shell:脚本调试
来源:互联网 发布:可以在家干的工作 知乎 编辑:程序博客网 时间:2024/06/06 07:28
调试功能是每一门编程语言都应该实现的重要特性,每个系统程序员都应该了解Bash的调试选项;
1.使用选项-x,启动Shell脚本的跟踪调试功能,将执行的每一条命令和输出的结果输出;
Test.sh文件
Test.sh文件
Test.sh文件
1.使用选项-x,启动Shell脚本的跟踪调试功能,将执行的每一条命令和输出的结果输出;
Test.sh文件
#!/bin/bash foriin {1..6}; do echo $i done echo "Script executed"
正常执行
[pengchengxiang@localhost ~]$ bash test.sh 1 2 … … Script executed调试执行
[pengchengxiang@localhost ~]$ bash -x test.sh + foriin '{1..6}' + echo 1 1 + foriin '{1..6}' + echo 2 2 … … + echo 'Script executed' Script executed2.使用set -x和set +x对脚本进行部分调试,将脚本执行的每一行输出到stdout;
Test.sh文件
#!/bin/bash foriin {1..6}; do set -x echo $i set +x done echo "Script executed"部分调试输出
[pengchengxiang@localhost ~]$ bash -x test.sh + foriin '{1..6}' + set -x + echo 1 1 + set +x + echo 2 2 … … Script executed3.使用自定义格式显示显示信息,通过传递_DEBUG环境变量来建立调试风格;
Test.sh文件
#!/bin/bash function DEBUG() { [ "$_DEBUG" == "on" ] && $@ || : } foriin {1..6}; do DEBUG echo $i done echo "Script executed"正常执行,不输出DEBUG日志信息
[pengchengxiang@localhost ~]$ ./test.sh Script executedDEBUG模式执行,输出DEBUG日志信息
[pengchengxiang@localhost ~]$_DEBUG=on ./test.sh 1 2 3 4 5 6 Script executed4.你也可以在#!/bin/bash -xv,这样就可以不使用任何选项就可以启动调试功能了;
Test.sh文件
#!/bin/bash -xv function DEBUG() { [ "$_DEBUG" == "on" ] && $@ || : } foriin {1..6}; do DEBUG echo $i done echo "Script executed"不添加选项,直接执行
[pengchengxiang@localhost ~]$./test.sh #!/bin/bash -xv function DEBUG() { [ "$_DEBUG" == "on" ] && $@ || : } foriin {1..6}; do DEBUG echo $i done + foriin '{1..6}' + DEBUG echo 1 + '[' '' == on ']' + : … … echo "Script executed" + echo 'Script executed' Script executed
1 0
- shell脚本调试技巧
- Shell脚本调试技术
- Shell脚本调试技术
- Shell脚本调试技术
- Shell脚本调试技术
- Shell脚本调试技术
- Shell脚本调试技术
- shell脚本调试技术
- Shell脚本调试技术
- Shell脚本调试技术
- bashdb调试shell脚本
- 如何调试shell脚本
- Shell脚本调试技术
- Shell脚本调试技术
- Shell脚本调试技术
- Shell脚本调试技术
- shell脚本调试
- Shell脚本调试技术
- 作业-4
- TextView can not be cast to ViewGroup
- 数据结构之链表学习笔记
- C++上机实验4-求1000以内所有偶数的和
- 第12章 UDP
- Shell:脚本调试
- 我的第一篇博客
- 百度地图离线开发
- rocketmq cluster下concurrently重试机制实现
- 241. Different Ways to Add Parentheses
- Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xm
- 关于openvas的酸甜苦辣
- 英语
- lintcode之不同子序列数 + 序列II