Unix / Linux 的程序退出状态 exit status---相关解释

对于 *NIX 系统而言,每一条命令,不管是内置的,SHELL 函数还是外置的,当它退出时,都 会返回一个小整数给引用它的程序,这就是程序退出状态 ( exit status ).

一般来讲,退出状态 0 表示正常执行,没有遭遇任何问题。其他非零的状态码均表示失败。

在 shell 中,可以使用 $? 来访问最后一个程序的退出状态。

下面是 POSIX 的结束状态:

退出状态码含义
0命令成功退出
> 0在重定向或者单词展开期间(~、变量、命令、算术展开以及单词切割)失败。
1 – 125命令不成功退出。特定的退出值的含义,有各个命令自行定义。
126命令找到了,但是文件无法执行。
127命令没有找到
> 128命令因收到信号而死亡。

POSIX 没有定义 128 的状态码,仅要求它表示某种错误。因为只有低位的 8 个位会返回给父进程,因此,所有大于 255 的退出状态都会被对 256 取模,然后将其结果作为实际的 exit status code.

在 shell 脚本中,可以使用 exit integer_value 这种方式声明退出状态。如果没有显式地声明,则会以最后一个程序的退出状态作为当前脚本的退出状态。也可以使用 exit $? 来表示。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值