我遇到了一个以exit行结尾的bash脚本。会有什么变化(除了吓唬那些“源”用户,而不是终端关闭时直接打电话)?
请注意,我对退出和返回之间的区别并不特别感兴趣。在这里,我只对在bash脚本末尾没有参数的exit之间的区别感兴趣(其中一个是关闭控制台或进程,它是脚本的源,而不是调用)。
会不会是为了解决一些鲜为人知的贝壳方言呢?
发布于 2019-07-04 20:20:47
这样做一般没有好处。只有缺点,特别是不能像你说的那样提供脚本。
您可以构建重要的场景,例如让一个sourceing脚本依赖它来终止错误,或者让一个自解压缩的归档头避免执行它的有效负载,但是这些不寻常的情况不应该成为一般指导方针的基础。
发布于 2021-12-23 20:12:11
一个重要的优点是它可以显式地控制返回代码。
否则,脚本的返回代码将是它执行的最后一个命令的返回代码。它可能表示整个脚本的实际成功或失败,也可能没有。
一个稍微小一些的优势是,如果最后一个命令的退出代码很重要,那么您可以使用"exit $?“来跟踪它吗?这告诉后来的维护程序员,是的,您确实考虑了程序的退出代码应该是什么,他不应该在不了解原因的情况下对其进行操作。
相反,当然,我不建议以一个明确的退出调用结束bash脚本,除非您真正的意思是“忽略所有以前的退出代码,并使用此代码”。因为其他查看代码的人都会假设您想要这样做,而且如果您只是死记硬背,而不是出于某种原因,他们会很生气,因为您浪费了他们的时间,试图找出原因。
https://stackoverflow.com/questions/56893177
复制相似问题