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 退出状态码(特殊变量$?)