shell退出码
2014-04-29 14:32
253 查看
通过上面的表, 我们了解到, 退出码1 - 2, 126 - 165, 和255 [1] 都具有特殊的含义, 因此应该避免使用用户指定的退出参数. 如果脚本使用exit 127作为退出语句, 那么可能就会在故障诊断的时候产生混淆(如何判断这是由"command not found"引起的, 还是由用户定义引起的?). 然而, 许多脚本使用exit 1作为通用的返回错误值. 因为退出码1能够表示的错误太多了, 不过这么做, 对于调试来说, 也起不到任何帮助的作用.
其实早就有人对退出状态值进行了系统的分类(请参考/usr/include/sysexits.h), 不过这个文件是为C/C++程序员准备的. 其实shell脚本也需要这样一个类似的标准. 所以本文作者呼吁限制使用用户定义的退出码, 尤其是范围64 - 113(还有0, 表示成功), 这么做, 就可以和C/C++标准保持一致. 这样我们就有了50个可用的退出码, 而且非常便于故障诊断.
本书中所有例子中的用户定义退出码都符合这个标准, 除了那些超出标准范围的例子, 比如例子 9-2.
Note
只有在Bash或sh提示符下, 当shell脚本退出后, 在命令行上使用$?才会得到与上表相一致的结果. 在某些情况下, 运行C-shell或者tcsh可能会给出不同的值.
相关文章推荐
- Linux SSH命令大全
- 开发人员必知的8个常用linux命令
- 11个有用的Linux命令
- Linux系统管理常用命令及参数说明中文版
- Linux系统信息查看常用命令
- 致命的7个Linux命令
- linux下查找命令汇总(转)
- 动画演示10个有趣但毫无用处的Linux命令
- linux命令一句话【很实用的linux命令】
- linux命令收集
- 有趣的10个linux命令。
- 非常实用的linux系统命令
- Linux必学的60个命令(1)-安装与登陆
- Linux必学的60个命令(2)-文件处理
- Linux必学的60个命令(3)-系统管理
- Linux必学的60个命令(4)-网络操作
- Linux必学的60个命令(5)-网络安全
- Linux必学的60个命令(6)-其他
- linux cut
- linux sed