linuxbashshell提供了简单但有用的编程环境。我们可以编写简单的应用程序,脚本来运行命令,重定向输入和输出,创建、停止进程。在执行脚本或函数之后,我们可能需要向脚本调用者提供一些信息。 exit
关键字用于用有用的信息结束给定的脚本。在本教程中,我们将使用 exit
并将退出状态发送给程序或脚本调用者。
以最后一个命令的状态退出
我们将首先提供最后一个命令的状态作为exit status。我们通常在脚本或应用程序中运行命令。在此脚本或应用程序中执行的每个命令都将以一个状态完成执行。最后一个命令退出状态可以在脚本末尾以3种不同的方式提供。
- 简单地不做任何事情将提供最后一个命令退出状态作为脚本退出状态。在下面的示例中
ls
命令退出状态也是脚本的退出状态。
#!/bin/bash ls /home
- 或者我们可以显式地使用
exit
关键字以发送ls
命令如下。
#!/bin/bash ls /home exit
- 或者最显式的版本是使用
exit $?
返回最后执行的命令状态$?
通过提供exit
.
#!/bin/bash ls /home exit $?
打印上次命令退出状态
正如我们在上一部分学到的,我们可以使用 $?
以提供最后的命令退出状态。这实际上是一个bash feautre,除了脚本之外,它还可以以不同的方式使用。我们要跑了 mkdir
命令中创建文件夹的操作失败 /root/test
这将导致权限被拒绝错误。然后我们会打印出这个的退出状态 mkdir
命令 $?
$ mkdir /root/test $ echo $?

如我们所见,这将打印出来 1
这意味着有一个错误。我们将在以下部分学习退出状态代码。
相关文章: Linux使用特殊字符相应地回显Bash变量
显式提供退出状态
在执行脚本和应用程序时,我们可以显式地提供退出代码。我们只是提供我们想提供给 exit
关键字。请记住 exit
将退出当前正在运行的脚本、应用程序或进程。在本例中,我们将提供如下退出状态 17
.
#!/bin/bash ls /home exit 17
成功退出状态
有不同的退出状态代码和含义。但有一些一般规则。成功退出状态代码为
它将被Linux社区所接受。在下面的示例中,我们将提供给定脚本的成功退出状态。
#!/bin/bash ls /home exit 0
一般错误退出状态
如前所述,有不同类型的代码。我们也可以创建自己的代码及其含义。这里是最通用和公认的退出状态代码。
-
-
1
退出代码用于声明存在一般错误,如divide by zero
等。 -
2
退出代码用于说明shell内置程序存在误用。
我们还可以创建自己的退出状态代码并对其进行解释。例如,我们可以使用 17
作为成功完成,但有一些小警告。
exit 17
将退出状态设置为变量
在处理退出状态时,我们可能需要将给定脚本、应用程序或命令的退出状态设置为一个变量。这是一个非常简单的例子,我们将使用 $?
和变量赋值。
$ mkdir /root/test $ last_exit_status=$? $ echo $last_exit_status

正如我们所看到的,退出状态保存到名为 last_exit_status
并得到退出值 1