迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

Bash 中的错误处理

作者:迹忆客 最近更新:2023/06/09 浏览次数:

本文介绍了 bash 中的错误处理。 请记住,了解退出代码、选项(如 errexit 和 trap)使我们能够构建健壮的脚本并更有效地管理 bash 问题。


Bash 中的退出代码

基于退出代码处理错误是检测命令失败的标准技术。 对于外部命令尤其如此。

bash 中的 curl 命令是根据已知错误代码处理问题的一个很好的例子。 与用户定义的例程相比,外部命令错误代码被完整记录。

${?} 存储在给定行之前执行的最后一个命令的退出状态。 代码 0 表示命令已成功执行。 否则,出了点问题。

case {?} in
0) {
true # ok
} ;;
*) {
false # something went wrong
}

Bash 错误处理可以使用简单的退出代码来执行。 您可以尝试直到找到更懒惰的解决方案。 至少,任何人都会在根据错误代码执行一些条件处理问题后这样做。

错误退出

出错时退出无疑是最有用的错误检测和处理能力,bash 程序员一开始就没有。

trap、Exit 和 Error

trap 允许我们指定在 shell 收到信号时执行的命令。 SIGNAL SPEC 是信号的名称。 一些频繁的 EXITERRORDEBUGRETURN 信号。

我们可以使用 trap -l 命令列出更多信号。 我们还可以使用 trap -p SIGSPEC 确定哪些命令与某个信号相关联。

例如,我们可能希望确定哪些命令对应于 ERR 信号。 在那种情况下,我们可以键入以下命令行:

trap -p ERR

如果输出为空,则 trap 尚未将任何命令与信号相关联。

_() { echo oops ; }
 trap _ ERR EXIT

现在,打印信号命令不会产生空结果。

输入:

trap -p EXIT ERR

输出:

trap -- '_' EXIT
trap -- '_' ERR

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便