Bash脚本中处理错误的常用方法有哪些
发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,这篇文章主要为大家分析了Bash脚本中处理错误的常用方法有哪些的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习"Bash
千家信息网最后更新 2024年11月19日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安全错误
数据库的锁怎样保障安全
数据库字段存取大文件速度
武汉传媒学院网络安全实验室
网络安全运营人员配置
网络安全法我们怎么做
国内空间数据库发展
魔兽世界玛维影歌服务器人口普查
京东软件开发背景调查
荆门好的软件开发多少钱
动态感知网络安全
列举软件开发模型
金华定制软件开发价格
我的世界20人服务器配置要多少
手机网络安全证书有问题
视频聊天数据库能不能查得到
软件开发哪种公司不用出差
上海交通大学网络安全好不好
新一代云服务器
数据库会员别名
课程管理系统软件开发
幼儿网络安全中班ppt
延长县新闻网络安全
速达SQL数据库用户密码
去哪里找定位服务器
国际网络安全抗疫
加强网络安全管理化
西普莱固定架子服务器
网络安全加密码匙是什么
立讯服务器事业部
清苑软件开发工具
查询软件开发成熟度等级