Linux Bash退出和退出代码

linuxbashshell提供了简单但有用的编程环境。我们可以编写简单的应用程序,脚本来运行命令,重定向输入和输出,创建、停止进程。在执行脚本或函数之后,我们可能需要向脚本调用者提供一些信息。 exit 关键字用于用有用的信息结束给定的脚本。在本教程中,我们将使用 exit 并将退出状态发送给程序或脚本调用者。

null

以最后一个命令的状态退出

我们将首先提供最后一个命令的状态作为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 $?
Print Last Command Exit Status
打印上次命令退出状态

如我们所见,这将打印出来 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
Set Exit Status Into A Variable
将退出状态设置为变量

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

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享