Unix / Linux 的程序退出状态 exit status---相关解释

对于 *NIX 系统而言,每一条命令,不管是内置的,SHELL 函数还是外置的,当它退出时,都 会返回一个小整数给引用它的程序,这就是程序退出状态 ( exit status ).

一般来讲,退出状态 0 表示正常执行,没有遭遇任何问题。其他非零的状态码均表示失败。

在 shell 中,可以使用 $? 来访问最后一个程序的退出状态。

下面是 POSIX 的结束状态:

退出状态码 含义
0 命令成功退出
> 0 在重定向或者单词展开期间(~、变量、命令、算术展开以及单词切割)失败。
1 – 125 命令不成功退出。特定的退出值的含义,有各个命令自行定义。
126 命令找到了,但是文件无法执行。
127 命令没有找到
> 128 命令因收到信号而死亡。

POSIX 没有定义 128 的状态码,仅要求它表示某种错误。因为只有低位的 8 个位会返回给父进程,因此,所有大于 255 的退出状态都会被对 256 取模,然后将其结果作为实际的 exit status code.

在 shell 脚本中,可以使用 exit integer_value 这种方式声明退出状态。如果没有显式地声明,则会以最后一个程序的退出状态作为当前脚本的退出状态。也可以使用 exit $? 来表示。

你可能感兴趣的:(Unix / Linux 的程序退出状态 exit status---相关解释)