shell中运行的每一个命令都使用退出状态码(exit status)。退出状态码是一个0~255的整数,在命令结束运行时有命令传给shell。shell
Linux提供了一个专门的变量 $? 来保存上一个已执行命令的退出状态码。对于须要进行检查的命令,必须在其运行完毕后马上查看或使用 $? 变量。它的值会变成有shell所执行的最后一条命令的退出状态码。ide
一个成功结束的命令的退出状态码是0。Linux错误退出状态码没有什么标准可循,但有一些可用的参考:it
状态码 | 描述 |
---|---|
0 | 命令成功结束 |
1 | 通常性未知错误 |
2 | 不适合的shell指令 |
126 | 命令不可执行 |
127 | 没找到命令 |
128 | 无效的退出参数 |
128+x | 与Linux信号x相关的严重错误 |
130 | 经过 Ctrl+C 终止的命令 |
255 | 正常范围以外的退出状态码 |
举例说明:table
默认状况下,shell脚本会以脚本中的最后一个命令的退出状态码退出。
使用exit命令能够改变这种行为,容许你在脚本结束时指定一个退出状态码。class
退出状态码是一个0~255的整数,参数太大,会被系统取模。变量