shell的退出状态码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell的退出状态码相关的知识,希望对你有一定的参考价值。

shell中运行的每个命令都使用退出状态码(exit status)。退出状态码是一个0~255的整数,在命令结束运行时有命令传给shell。

查看退出状态码

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

一个成功结束的命令的退出状态码是0。Linux错误退出状态码没有什么标准可循,但有一些可用的参考:

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

举例说明:

  • 无效的命令会返回一个退出状态码127。
  • 退出状态码126,表明用户没有执行命令的正确权限。
  • 给命令提供了无效参数,会产生一般性的退出状态码1,表明在命令中发生了未知错误。

exit 命令

默认情况下,shell脚本会以脚本中的最后一个命令的退出状态码退出。
使用exit命令可以改变这种行为,允许你在脚本结束时指定一个退出状态码。

退出状态码是一个0~255的整数,参数太大,会被系统取模。

以上是关于shell的退出状态码的主要内容,如果未能解决你的问题,请参考以下文章

shell从入门到精通(16)shell 退出状态码(特殊变量$?)

shell从入门到精通(15)shell 退出状态码(特殊变量$?)

Shell命令的退出状态及错误检查

Shell——3

Shell脚本returnechoprintf

linux退出状态码及exit命令