Bash 中的错误处理
本文介绍了 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 是信号的名称。 一些频繁的 EXIT
、ERROR
、DEBUG
和 RETURN
信号。
我们可以使用 trap -l 命令列出更多信号。 我们还可以使用 trap -p SIGSPEC 确定哪些命令与某个信号相关联。
例如,我们可能希望确定哪些命令对应于 ERR 信号。 在那种情况下,我们可以键入以下命令行:
trap -p ERR
如果输出为空,则 trap 尚未将任何命令与信号相关联。
_() { echo oops ; }
trap _ ERR EXIT
现在,打印信号命令不会产生空结果。
输入:
trap -p EXIT ERR
输出:
trap -- '_' EXIT
trap -- '_' ERR
相关文章
在 Bash 中运行 find -exec 命令
发布时间:2024/03/14 浏览次数:127 分类:操作系统
-
本文将演示如何使用 find 命令的 -exec 参数来使用 find 命令定位文件中的任何文本。