Linux shell 查看退出状态码(特殊变量$?)

在shell中运行的每个命令都使用了退出状态码告诉shell它已经运行完毕。退出状态码是一个0~255的整数值,在命令运行时由命令传给shell。可以捕获这个值并在脚本中使用。

查看退出状态码
Linux提供了一个专门的变量 ? 来 保 存 上 个 已 执 行 的 退 出 状 态 码 。 对 于 需 要 进 行 检 查 的 命 令 , 必 须 在 运 行 完 毕 后 立 刻 查 看 ?来保存上个已执行的退出状态码。对于需要进行检查的命令,必须在运行完毕后立刻查看 ?退?变量。它的值会变成由shell所执行的最后一条命令的退出码。

Linux退出状态码

状态码 描述
0 命令成功结束
1 一般性未知错误
2 不适合的shell命令
126 命令不可执行
127 没有找到命令
128 无效的退出参数
128+x 与Linux信号x相关的严重错误
130 通过Ctrl +C终止的命令
255 正常范围之外的退出状态码

Linux shell 查看退出状态码(特殊变量$?)_第1张图片
按照惯例,一个成功结束的命令的退出码状态码是0。如果一个命令结束时有错误,退出状态码就是一个正整数值。例如下面的随便输入命令:

Linux shell 查看退出状态码(特殊变量$?)_第2张图片
提示信息:位找到命令。通过echo $?查看。无效的命令会返回一个退出状态码127。

例如创建一个test1.sh,没有给权限(chmod u+n test1.sh) 。退出码状态126表明用户没有执行命令的正确权限。

Linux shell 查看退出状态码(特殊变量$?)_第3张图片

另一个会碰到的常见的错误是给某个命令提供无效的参数。

Linux shell 查看退出状态码(特殊变量$?)_第4张图片
这会产生一般性的退出码1,表明在命令中发生了未知的错误。

exit 命令

exit命令同于退出shell,并返回给定值。在shell脚本中可以终止当前脚本执行。执行exit可使shell以指定的状态值退出。若不设置状态值参数,则shell以预设值退出。

状态值0代表执行成功,其他值代表执行失败。

总结

Linux提供 ? 特 殊 变 量 来 保 存 最 后 一 条 命 令 执 行 结 束 的 退 出 状 态 。 执 行 完 一 条 命 令 后 , 立 即 执 行 e c h o ? 特殊变量来保存最后一条命令执行结束的退出状态。执行完一条命令后,立即执行echo ?退echo?,可以查看最后一条命令的退出状态值。

退出状态码是一个0~255的数值,表明命令是否成功执行。一个成功结束的退出状态码是0。如果一个命令结束时有错误,退出状态码就是一个正数值。

参考:Linux命令行与shell脚本编程大全

Linux shell 查看退出状态码(特殊变量$?)_第5张图片

你可能感兴趣的:(Linux,shell)