ein*_*ica 5 error-handling bash shell scripting sh
我正在写一个相当简单的bash脚本; 如果我检测到错误(没有来自其他进程的错误退出状态)我想退出,退出状态表示错误(没有太具体).
看起来我应该这样做exit 1(例如根据TLDP Advanced Bash Scripting Guide和C Standard Library的stdlib.h标题); 但我注意到很多人exit -1.这是为什么?
TLDP的ABS的有效性是有问题的(因为它经常使用,没有评论,低于标准的做法)所以我不会把它作为一个特定的正确性基础.
这就是说有效的命令返回代码之间0,并255与0被"成功".所以是的,1是一个完全有效(和常见)的错误代码.
显然我不能肯定地说其他人为什么这样做,但我对这个话题有两点想法.
上下文切换失败(可能与缺乏领域知识相结合).
在许多语言中-1,函数的返回值是一个完全有效的值,并且可以从通常返回的所有正值中脱颖而出(假设).
因此,尝试将该模式(作者随着时间的推移而选择)扩展到shell脚本/等.对他们来说是合情合理的.特别是如果他们没有领域知识来意识到有效的返回码介于两者之间0 255.
尝试使这些错误退出线从正常退出情况(可能或可能不成功退出自身)中"脱颖而出",以试图在视觉上区分某组极不可能或非常特殊的退出情况.
-1实际上,它的退出工作它只是没有得到它的返回代码-1获取返回代码255.(尝试(exit -1); echo $?在你的shell中看到它.)所以这不是一个完全不合理的事情(尽管在混淆退出代码方面令人困惑和同谋).
| 归档时间: |
|
| 查看次数: |
198 次 |
| 最近记录: |