【发布时间】:2019-11-15 12:06:51
【问题描述】:
我遇到了一个以 exit 行结尾的 bash 脚本。有什么改变吗(在终端关闭时避免那些“来源”而不是直接打电话的吓人用户)?
请注意,我对退出和返回之间的区别并不特别感兴趣。在这里,我只对 bash 脚本末尾不带参数的退出之间的区别感兴趣(一个是关闭控制台或进程,它获取脚本而不是调用)。
可以解决一些鲜为人知的shell方言吗?
【问题讨论】:
-
基本上,
exit将关闭你所在的子shell。如果你在一个你想停止运行的脚本中,这可能很有用(如果你source脚本就更少了)。 -
脚本文件的结尾无论如何都会关闭
-
我不知道这是否重复,但它不是与上述问题的重复。
-
唯一的好处是它使事情更加明确。没有参数的
exit与exit $?相同,这与根本不显式退出相同。人们经常忘记脚本返回的值很重要。添加显式的exit可以提醒读者返回的值很重要。 -
另外,如果你不想考虑最后一个命令的退出状态变成脚本本身的状态的含义,那么养成使用显式@987654327的习惯是合理的@ 在特定情况下是否真的需要它。