我遇到了一个以 exit
行结尾的bash脚本。会发生任何变化(节省恐怖的用户"来源",而不是在终端关闭时直接打电话(?
请注意,我对退出和返回之间的差异并不特别感兴趣。在这里,我只对在bash脚本末尾没有参数的退出之间的差异感兴趣(一个关闭控制台或处理脚本而不是调用的过程(。
可以解决一些鲜为人知的外壳方言吗?
通常没有任何好处。只有缺点,特别是无法像您说的那样来源脚本。
您可以在重要的位置构造方案,例如,具有source
脚本依赖于终止错误,或者让自我提取的存档标头避免执行其有效载荷,但是这些不寻常的案例不应成为一个基础一般指南。
一个重要的优势是它可以明确控制返回代码。
否则,脚本的返回代码将是恰好是它执行的最后一个命令的返回代码。这可能表明脚本整体的实际成功或失败。
一个稍微降低的优势是,如果最后一个命令的退出代码是很重要的,并且您以" Exit $?"的方式跟随它。这告诉维护程序员以后出现,是的,您确实考虑了程序的退出代码应该是什么,而他不应该在不了解原因的情况下使用它。
相反,当然,我不建议您结束一个带有明确呼叫退出的bash脚本,除非您真的是"忽略所有先前的退出代码",而是使用此一个。因为那是其他任何人都在看您的代码的东西,他们会想到您想要的,他们会很生气,因为您浪费了他们的时间试图弄清楚为什么您只是通过死记硬背而不是出于某种原因而做的。