为什么Linux / shell中的退出状态,即$? 128加上状态编号。我搜索过但找不到合适的解释。
答案 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,了解有关返回标准代码的详细信息。