退出 Bash 脚本
本文简要介绍 Bash 脚本,并讨论在出现错误时退出 Bash 脚本。 它进一步讨论了 Bash 脚本的局限性和好处。
什么是 Bash 脚本
计算机脚本/程序告诉计算机做什么和说什么。 同样,Bash 脚本是指导 Bash 执行哪些操作的一系列命令。
Bash 脚本是一个简单的文本文件,其中包含一组要执行的命令。 这个命令集可以是我们可以直接在 Bash 界面上编写的许多命令行指令(例如 ls、cd、rm 等)的顺序组合。
从命令行提示符下执行的任何命令也可以放入脚本中,并产生与在命令行提示符下相同的结果。 同样,脚本文件中的每个命令也可以直接输入 Bash 命令行界面,结果是一样的。
不需要额外的调整。 您只需要根据语法输入命令,它们就会给出相同的结果。
我们不是将它们放在命令行中,而是将它们输入到一个简单的文本文件中。
扩展名 .sh 通常用于 Bash 程序(例如 loopScript.sh)。 您可能知道,Linux 是一个免扩展的操作系统; 因此,扩展不是脚本正常工作所必需的。
何时避免使用 Bash 脚本(即限制)
在某些情况下,应避免使用 Bash 脚本。 他们之中有一些是:
- 需要大量资源的任务,尤其是当速度是主要关注点时(排序函数、散列函数、递归函数等)
- 需要大量数学运算的函数,例如浮点运算,或者使用复数进行计算(而不是使用 C++ 或 FORTRAN)。 在不同平台之间创建可移植应用程序时,应使用 C 或 Java。
- 复杂的应用程序需要结构化编程。
- 关乎公司未来的关键业务计划。
- 安全性至关重要的情况,例如当您需要确保系统的完整性并防止入侵、破解或损坏时。
- 该项目由相互关联的子组件组成。
- 需要大规模的文件活动。 (Bash 只能以逐行方式访问串行文件。)
- 多维数组需要本机支持。
- 需要数据结构,例如队列或图形。
- 需要创建或管理视觉效果或图形用户界面。
- 需要与硬件或外围设备交互。
- 需要 I/O 端口或插座。
- 您需要使用内置库或一些旧的遗留代码。
- 封闭源代码的专有应用程序(Shell 脚本使源代码可供任何想查看它的人使用。)
如何退出脚本
有一些情况,比如我们写了一个脚本来测试一些代码,需要退出脚本以防代码执行失败,那么我们就可以在脚本中使用exit命令。 脚本以 exit 命令终止,很像 C 程序。
exit
命令也可用于进程间通信(即传递给 exit 命令的参数返回给脚本的父进程)。
每个命令都会产生成功或失败状态(返回状态或退出代码)。 命令成功返回0; 不成功的命令会产生一个非零值,通常理解为错误代码。
成功完成后,大多数行为良好的 UNIX 命令、程序和实用程序都会返回 0 退出代码,但也有一些例外。
脚本的函数和脚本本身都返回退出状态。 退出状态由函数或脚本的最后一个命令决定。
退出命令的语法是:
exit nn
可以在脚本中使用 exit nn 命令为 shell 提供 nn 退出状态(nn 必须是 0 - 255 范围内的整数)。 退出状态是脚本中执行的最后一个命令在以不带参数的退出(退出之前)终止时的退出状态。
例子:
#!/bin/bash
FIRST COMMAND
..
..
LAST COMMAND
# It will exit the script with the status of the last command.
exit
exit
, exit $?
或者只是省略 exit
都具有相同的含义:以最后一个命令的状态退出。 脚本退出后,我们可以使用命令 echo $?
检查状态。
某些退出代码有一些保留的含义,不应由用户定义。 这些代码及其含义如下所列。
退出代码 | 说明 |
---|---|
1 | 捕获所有一般错误 |
2 | 如果内置 shell 函数被滥用 |
126 | 调用的命令无法执行 |
127 | 调用的命令未找到 |
128 | 传递了个无效参数 |
130 | 脚本通过使用 Ctrl+C 键盘键终止 |
255* | 超出范围退出状态 |
相关文章
Bash 中的 timeout 命令
发布时间:2023/06/11 浏览次数:63 分类:操作系统
-
本文是使用 Bash 中 GNU 的 coreutils 包的 timeout 命令为特定程序设置超时的简单指南。Bash 中的 timeout 命令
在 Bash 中启动一个新的终端会话
发布时间:2023/06/11 浏览次数:102 分类:操作系统
-
在各种情况下,当使用 Bash 或其他 shell 时,可能需要在新终端实例或同一终端中的另一个选项卡中运行脚本或程序。
在 Bash 中检查语法
发布时间:2023/06/11 浏览次数:97 分类:操作系统
-
在 Bash 脚本中情况并非如此,因为 Bash 是一个命令行解释器。 因此,我们需要单独检查语法错误。可以有不同的技术来检查语法问题,如下所示。
使用 Bash 对文本文件中的数字列表求和
发布时间:2023/06/11 浏览次数:109 分类:操作系统
-
本篇文章将介绍使用 Bash 脚本对文件中的数字列表求和的多种方法。 第一种方法涉及使用粘贴命令,我们将讨论两种情况:使用现有文件和使用标准输入读取文件。
在 Bash 中传递所有参数
发布时间:2023/06/11 浏览次数:197 分类:操作系统
-
在 Bash 脚本中,我们主要使用语法 $1 $2 $3 ... $N 在函数中传递变量。此外,我们将看到必要的示例和解释,以使主题更容易理解。在 Bash 中传递所有参数
在 Bash 中解析 XML
发布时间:2023/06/11 浏览次数:109 分类:操作系统
-
本文将展示我们如何通过 Bash 解析 XML。我们将在这里讨论两个库。 我们的第一个库是 xmllint,第二个库称为 XMLStarlet。在 Bash 中使用 xmllint 解析 XML
Bash 脚本中的 Echo Tab 字符
发布时间:2023/06/11 浏览次数:198 分类:操作系统
-
本文演示了如何回显特殊字符(例如制表符),否则这些字符会在 Bash 脚本中转换为单个空格字符。 这扩展到 Bash 以外的 shell(例如 zsh)。
在 Bash 中回显到 stderr
发布时间:2023/06/11 浏览次数:102 分类:操作系统
-
本文将了解 stderr 及其功能。 此外,我们将查看一些示例,这些示例将使该主题更容易理解。在 Bash 中回显到 stderr 命令 stderr 主要用于在执行任何命令期间保持错误的重新编码。
在 Bash 中连接多个文件
发布时间:2023/06/10 浏览次数:170 分类:操作系统
-
有时出于各种目的,我们需要将多个文件连接成一个文件。 在 Bash 脚本中,很容易完成这项任务。在 Bash 中连接多个文件