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正常范围之外的退出状态码

在这里插入图片描述
按照惯例,一个成功结束的命令的退出码状态码是0。如果一个命令结束时有错误,退出状态码就是一个正整数值。例如下面的随便输入命令:

在这里插入图片描述
提示信息:位找到命令。通过echo $?查看。无效的命令会返回一个退出状态码127。

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

在这里插入图片描述

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

在这里插入图片描述
这会产生一般性的退出码1,表明在命令中发生了未知的错误。

exit 命令

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

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

总结

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

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

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

在这里插入图片描述

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值