让我烦恼的是,return 0
只有在获取文件并且执行子 shell 时才需要exit 0
.我正在尝试创建一个函数,其代码将在父作用域中求值,以便它可以执行以下操作:
return 0 2>/dev/null
exit 0
这是父级范围内最简单的解决方案,因为如果 return 失败,则 exit 将起作用并且它涵盖了所有情况。但它当然只有在父作用域中编码时才有效,因为函数作用域内的返回显然会从只是功能。
怎么可能做到这一点?我比较喜欢简单,但是这个问题可能不太可能
答案1
一种解决方案是这样的。假设我们想要退出退出代码为 42 的脚本,无论它是来源还是在自己的进程中运行:
return 42 || exit 42
即尝试return 42
。如果失败,请尝试exit 42
,预计不会失败。