shell调试技巧
2021/7/24 7:34:54
本文主要是介绍shell调试技巧,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
trap调试技巧一
tee调试技巧二
调试钩子
sh 执行选项调试
- 使用trap命令
shell脚本执行时会产生三个所谓的伪信号,可以使用trap命令捕获这三个“伪信号”,并输出相关的调试信息
信号名 | 产生原因 |
---|---|
EXIT | 从一个函数中退出或整个脚本执行完毕 |
ERR | 从一条命令返回非零状态时(代表命令执行不成功) |
DEBUG | 脚本中每一条命令执行之前 |
- 示例一
#!/bin/bash ERRTRAP() { echo "[LINE: $1] Error: Command or function exited with status $?" } foo() { return 1; } trap 'ERRTRAP $LINENO' ERR abc foo
- 示例二
#!/bin/bash trap 'echo "befor execute line:$LINENO, a=$a,b=$a,c=$c"' DEBUG a=1 if [ "$a" -eq 1 ] then b=2 else b=1 fi c=3 echo "end"
-
tee调试技巧二
tee命令会从标准输入读取数据,将其内容输出到标准输出设备,同时又可将内容保存成文件。 -
示例一
ipaddr=`hostname -I|cut -d' ' -f1|tee temp.txt` echo $ipaddr
- 调试钩子
在脚本的开发调试阶段,可以先执行export DEBUG=true命令打开调试钩子,使其输出调试信息,export DEBUG=false可以全部屏蔽
TRACE() { if [ "$DEBUG" = "true" ]; then $@ fi } a=1 TRACE echo "a=$a" if [ "$a" -eq 1 ]; then echo $a fi
- sh 执行选项调试
-n 测试shell脚本是否存在语法错误,但不会世界之行命令
-x 进入跟中方式,显示所执行的每一条命令
-c "string" 从string中读取命令sh -c 'a=1;b=2;let c=$a+$b;echo "c=$c"'
-x 加强 默认缺省$PS4的值是“+” export PS4='+{$LINENO:${FUNCNAME[0]}} '
这篇关于shell调试技巧的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15JavaMailSender是什么,怎么使用?-icode9专业技术文章分享
- 2024-11-15JWT 用户校验学习:从入门到实践
- 2024-11-15Nest学习:新手入门全面指南
- 2024-11-15RestfulAPI学习:新手入门指南
- 2024-11-15Server Component学习:入门教程与实践指南
- 2024-11-15动态路由入门:新手必读指南
- 2024-11-15JWT 用户校验入门:轻松掌握JWT认证基础
- 2024-11-15Nest后端开发入门指南
- 2024-11-15Nest后端开发入门教程
- 2024-11-15RestfulAPI入门:新手快速上手指南