shell中运行的每个命令都使用退出状态码告诉shell它已经运行完毕。提出状态码是一个0-255的整数值,在命令结束运行时有命令传给shell。可以捕获这个值并在脚本中使用。
Linux提供了一个专门的变量 ? 来 保 存 上 个 已 执 行 命 令 的 退 出 状 态 码 。 对 于 需 要 进 行 检 查 的 命 令 , 必 须 在 其 运 行 完 毕 后 立 刻 查 看 或 使 用 ?来保存上个已执行命令的退出状态码。对于需要进行检查的命令,必须在其运行完毕后立刻查看或使用 ?来保存上个已执行命令的退出状态码。对于需要进行检查的命令,必须在其运行完毕后立刻查看或使用?变量。它的值会变成由shell所执行的最后一条命令的退出状态码。
date
echo $?
按照惯例,一个成功结束的命令的退出状态码是0。如果一个命令结束时有错误,退出状态码就是一个正数值。
状态码 | 描述 |
---|---|
0 | 命令成功结束 |
1 | 一般性未知错误 |
2 | 不适合的shell命令 |
126 | 命令不可执行 |
127 | 没找到命令 |
128 | 无效的退出参数 |
128+x | 与Linux信号x相关的严重错误 |
130 | 通过Ctrl+C终止的命令 |
255 | 正常范围之外的退出状态码 |