Shell获取命令退出状态

Shell获取命令退出状态教程

Shell 中的 $? 是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值。所谓退出状态,就是上一个命令执行后的返回结果。

退出状态是一个数字,一般情况下,大部分命令执行成功会返回 0,失败返回 1,这和 C 语言 的 main() 函数是类似的。

不过,也有一些命令返回其他值,表示不同类型的错误。

案例

我们首先,打开一个 Shell,并新建一个 Shell 脚本,具体代码如下:

#!/bin/bash if [ "$1" == 100 ] then exit 0 #参数正确,退出状态为0 else exit 1 #参数错误,退出状态1 fi

现在,我们运行该脚本,并传递参数,具体命令如下:

sh hellohaicoder.sh 100

运行后,终端输出如下:

23_Shell获取命令退出状态.png

现在,我们使用 $? 获取脚本的返回值,具体命令如下:

echo $?

运行后,终端输出如下:

24_Shell获取命令退出状态.png

我们看到,我们使用 “$?” 时,获取了上一个脚本的返回值,因为,我们输入的参数是 100,所以返回了 0,现在,我们使用如下命令运行该脚本,具体命令如下:

sh hellohaicoder.sh 200

现在,我们使用 $? 获取脚本的返回值,具体命令如下:

echo $?

运行后,终端输出如下:

25_Shell获取命令退出状态.png

我们看到,这次脚本返回了 1。

Shell获取命令退出状态总结

Shell 中的 $? 是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值。所谓退出状态,就是上一个命令执行后的返回结果。

退出状态是一个数字,一般情况下,大部分命令执行成功会返回 0,失败返回 1。