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的整数,参数太大,会被系统取模。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章