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 中 Curl 命令的 Urlencode 数据
发布时间:2023/06/09 浏览次数:175 分类:操作系统
-
本文将教我们如何在 bash 中为 curl 命令对数据进行 urlencode。 让我们从 curl 命令的语法开始。Bash 中的 curl 命令 curl 命令的基本语法如下:
在 Bash 中获取绝对路径
发布时间:2023/06/09 浏览次数:96 分类:操作系统
-
在这篇 Bash 文章中,我们将学习在 Linux 中获取绝对路径的不同方法。 我们还将学习一些不同的 Linux 命令来获取文件的绝对路径。
Bash Nohup 与 & 的区别
发布时间:2023/06/09 浏览次数:137 分类:操作系统
-
这篇简短的文章介绍了通过 Bash 在后台运行 Linux 进程的 nohup 命令和 & 控制运算符。 此外,我们将进一步研究 nohup 和 & 之间的主要区别。在后台运行 Linux 进程
在 Bash 中重命名文件
发布时间:2023/06/09 浏览次数:50 分类:操作系统
-
在本文中,我们将介绍一种方法,通过它您可以轻松地重命名目录中的所有文件。 此外,我们将看到必要的示例和解释,以使主题更容易理解。在 Bash 中使用 mv 命令重命名文件
在另一个 Bash 脚本中包含脚本文件
发布时间:2023/06/09 浏览次数:79 分类:操作系统
-
本文讨论了将一个 Bash 脚本文件包含到另一个脚本文件中的不同方法。在 Bash 脚本中包含文件 在 Bash 中包含或重用脚本非常简单。
使用 Bash 将文件读入数组
发布时间:2023/05/31 浏览次数:81 分类:操作系统
-
本篇文章介绍了一些使用 Bash 从文件中读取行并将其加载到数组中的方法。首先,我们将看到 readarray 方法。 之后,我们将研究一种更通用的将文件读入 Bash 数组的方法。
在 Bash 中从文件中删除行
发布时间:2023/05/31 浏览次数:168 分类:操作系统
-
在 Bash 脚本中,有几种方法可以从文件中删除一行。 本文将讨论从文件中删除不必要行的不同方法。使用 tail 删除文本文件的一行
在 Bash 中查找文件大小
发布时间:2023/05/31 浏览次数:109 分类:操作系统
-
在 Bash 脚本中,有几种方法可以找到文件的大小。 本文将展示如何通过 Bash 查找文件的大小。我们将在这里讨论三种不同的方法,您可以根据自己的需要选择最合适的一种。