Bash脚本中处理错误的常用方法有哪些
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要为大家分析了Bash脚本中处理错误的常用方法有哪些的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习"Bash
千家信息网最后更新 2025年01月18日Bash脚本中处理错误的常用方法有哪些
这篇文章主要为大家分析了Bash脚本中处理错误的常用方法有哪些的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习"Bash脚本中处理错误的常用方法有哪些"的知识吧。
下面小编将为大家分享一下在 Bash 脚本中处理错误的一些常用的方法,如何获取错误代码、在执行脚本时获得详细输出、处理调试功能和错误重定向等,有需要的小伙伴可以参考一下。
退出状态
在 Bash 脚本中,$?
将打印退出状态。如果返回零,则表示没有错误。如果不为零,结论就是任务可能存在一些问题。
如下是一个简单例子:
[root@localhost ~]# cat myscript.sh#!/bin/bashmkdir learningecho $?
如果运行上述脚本一次,它将打印 0,因为该目录不存在,因此脚本将创建它。如果第二次运行该脚本,将获得一个非零值,如下所示:
[root@localhost ~]# sh myscript.sh0[root@localhost ~]# sh myscript.shmkdir: cannot create directory ‘learning’: File exists1
最佳实践
建议通过将 set -x
命令添加到 shell 脚本来启用调试模式,如下所示:
[root@localhost ~]# cat test3.sh#!/bin/bashset -xecho "Hello World!"mkdiir testing
然后运行脚本查看:
[root@localhost ~]# sh test3.sh+ echo 'Hello World!'Hello World!+ mkdiir testingtest3.sh: line 4: mkdiir: command not found
可以编写如下调试函数,这有助于随时调用它,使用以下示例:
[root@localhost ~]# cat debug.sh#!/bin/bash_DEBUG="on"function DEBUG(){[ "$_DEBUG" == "on" ] && $@}DEBUG echo 'Testing Debugging'DEBUG set -xa=2b=3c=$(( $a + $b ))DEBUG set +x
输出内容如下:
[root@localhost ~]# sh debug.shTesting Debugging+ a=2+ b=3+ c=5+ DEBUG set +x+ '[' on == on ']'+ set +x2 + 3 = 5
错误重定向
可以使用标准错误输出将所有系统错误重定向到自定义文件,标准错误可以用数字 2 表示。在 Bash shell 执行它,如下所示:
[root@localhost ~]# mkdir users 2> errors.txt[root@localhost ~]# cat errors.txtmkdir: cannot create directory ‘users’: File exists
大多数时候,很难在脚本中找到确切的行号。要打印带有错误的行号,请使用PS4
选项,其中的$LINENO
是预定义好的变量。
[root@localhost ~]# cat test3.sh#!/bin/bashPS4='$LINENO: 'set -xecho "Hello World!"mkdiir testing
可以在阅读错误时轻松查看行号:
[root@localhost ~]# sh test3.sh5: echo 'Hello World!'Hello World!6: mkdiir testingtest3.sh: line 6: mkdiir: command not found
关于"Bash脚本中处理错误的常用方法有哪些"就介绍到这了,更多相关内容可以搜索以前的文章,希望能够帮助大家答疑解惑,请多多支持网站!
错误
脚本
处理
常用
方法
内容
行号
输出
运行
标准
状态
知识
跟着
参考
代码
价值
任务
例子
兴趣
函数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
去网络安全科技馆玩怎么写
iosapp软件开发价格
甘肃听图网络技术有限公司
jdbc 备份数据库
tsdb数据库有什么限制吗
云服务器虚拟机怎么访问
网络安全手抄报七年级内容
杭州网络安全演练
卧龙生小说软件开发
当前无线网络技术的发展趋势
网络安全与道德发言稿大学生
乐纷互联网科技有限公司
两会公司网络安全
株洲软件开发师培训
网络技术如何学起
德国手机网络技术
政务软件开发风险
网络安全教育方面小主题班会
管理服务器惠普
机场网络技术研究院
汉斯公司 网络安全
福建软件开发咨询热线
什么是网络安全用英语怎么说
优质服务器机柜
数据库管理软件界面
数据库三角
万德数据库批量查找财务数据
c ado读取数据库
本届互联网大会上的黑科技
3389服务器管理端工具