在Linux 系统中,每当命令执行完成后,系统都会返回一个退出状态。该退出状态用一整数值表示,用于判断命令运行正确与否。若退出状态值为 0,表示命令运行成功;而退出状态值不为 0时,则表示命令运行失败。最后一次执行的命令的退出状态值被保存在内置变量“ $?”中,所以可以通过echo语句进行测试命令是否运行成功。 POSIX规定了以下几种退出状态和退出状态的含义。
状态值
|
含义
|
0
|
表示运行成功,程序执行未遇到任何问题
|
1-125
|
表示运行失败,脚本命令、系统命令错误或参数传递错误
|
126
|
找到了该命令但无法执行
|
127
|
未找到要运行的命令
|
>128
|
命令被系统强行结束
|
以下是一些实际的例子:
alloy@raspberrypi:/home$ ls
alloy pi
alloy@raspberrypi:/home$ echo $?
0
#运行成功
alloy@raspberrypi:/home$ ls test
ls: cannot access test: No such file or directory
alloy@raspberrypi:/home$ echo $?
2
alloy@raspberrypi:/home$ ls test
ls: cannot access test: No such file or directory
alloy@raspberrypi:/home$ echo $?
2
#传递参数失败
alloy@raspberrypi:/home$ test
alloy@raspberrypi:/home$ echo $?
1
alloy@raspberrypi:/home$ test
alloy@raspberrypi:/home$ echo $?
1
#传递参数失败
alloy@raspberrypi:/home$ alloy
-bash: alloy: command not found
alloy@raspberrypi:/home$ echo $?
127
alloy@raspberrypi:/home$ alloy
-bash: alloy: command not found
alloy@raspberrypi:/home$ echo $?
127
#没有这个命令