linux提供$?特殊变量来保存最后一条命令执行结束的退出状态。执行完一条命令后,立即执行echo $?,可以查看最后一条命令的退出状态值。

正常的情况下,命令成功执行完成的退出状态是0,如果非0,则命令执行有错。

该命令可以用于检查命令是否正确执行,比如在解压包的时候,检查解压包是否成功十分有效。

常见的状态码有0、1、126、127

例1:

sun@redhat62 11]$ date
2012年 04月 11日 星期三 22:41:34 CST
[sun@redhat62 11]$ echo $?
0
[sun@redhat62 11]$

例二:

[sun@redhat62 11]$ cuowude
-bash: cuowude: command not found
[sun@redhat62 11]$ echo $?
127
[sun@redhat62 11]$

退出状态代码:

0 命令成功完成

1通常的未知错误

2误用shell命令

126命令无法执行

127没有找到命令

128无效的退出参数

128+x使用Linux信号x的致命错误。

130使用Ctrl-C终止的命令

255规范外的退出状态