Linux shell中的退出状态

时间:2016-03-14 11:44:16

标签: linux unix

为什么Linux / shell中的退出状态,即$? 128加上状态编号。我搜索过但找不到合适的解释。

3 个答案:

答案 0 :(得分:1)

如果退出状态是> 127,它通常是信号编号加128.原因是信号在状态的二进制表示中占据最高位。

E.g。 130:

10000010
^     ^
|     |
|     2, i.e. SIGINT
killed by a signal

答案 1 :(得分:0)

以下摘自bash(1)

The return value of a simple command is its exit status, or 128+n if the command is terminated by signal n.

答案 2 :(得分:0)

POSIX兼容系统中的返回值仅为1个字节= 8位= 255个可能的值。除非你发现一个支持更多的奇怪系统,你应该选择一组不同的值。

您可以查看this question,了解有关返回标准代码的详细信息。