前言
在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,表明在命令中发生了未知的错误。
总结
shell中运行的每个命令都会产生 一个退出状态码。退出状态码是一个0~255的数值,表明命令是否成功执行;如果没有成功,可以的原因是什么。退出状态码0表明命令成功执行了。