加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 为什么有些人在出错时退出-1而不是退出1?

发布时间:2020-12-15 21:44:25 所属栏目:安全 来源:网络整理
导读:我正在写一个相当简单的bash脚本;如果我检测到错误(没有来自其他进程的错误退出状态)我想退出,退出状态表示错误(没有太具体). 看起来我应该做退出1(例如按照the TLDP Advanced Bash Scripting Guide和C标准库的 stdlib.h 标题);但我注意到很多人退出-1.这是
我正在写一个相当简单的bash脚本;如果我检测到错误(没有来自其他进程的错误退出状态)我想退出,退出状态表示错误(没有太具体).

看起来我应该做退出1(例如按照the TLDP Advanced Bash Scripting Guide和C标准库的stdlib.h标题);但我注意到很多人退出-1.这是为什么?

解决方法

TLDP的ABS的有效性是有问题的(因为它经常使用,没有评论,低于标准的做法)所以我不会把它作为一个特定的正确性基础.

即所述有效命令返回码介于0和255之间,0为“成功”.所以是的,1是一个完全有效(和常见)的错误代码.

显然我不能肯定地说其他人为什么这样做,但我对这个话题有两点想法.

>上下文切换失败(可能与缺乏领域知识相结合).

在许多语言中,函数的返回值-1是一个完全有效的值,并且可以从通常返回的所有正值中脱颖而出(假设).

因此,尝试将该模式(作者随着时间的推移而选择)扩展到shell脚本/等.对他们来说是合情合理的.特别是如果他们没有领域知识来意识到有效返回码在0 255之间.
>试图让那些错误退出线从正常退出情况(可能或可能不会成功退出)中“脱颖而出”,以试图在视觉上区分某组极不可能或非常特殊的退出情况.

-1的退出实际上工作它只是没有得到返回代码-1它得到你的返回代码255.(尝试(退出-1);在你的shell中回显$?看到.因此,这不是一件完全不合理的事情(尽管在混淆退出代码方面存在混淆和同谋).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读