如何让函数返回父作用域?

如何让函数返回父作用域?

让我烦恼的是,return 0只有在获取文件并且执行子 shell 时才需要exit 0.我正在尝试创建一个函数,其代码将在父作用域中求值,以便它可以执行以下操作:

return 0 2>/dev/null
exit 0

这是父级范围内最简单的解决方案,因为如果 return 失败,则 exit 将起作用并且它涵盖了所有情况。但它当然只有在父作用域中编码时才有效,因为函数作用域内的返回显然会从只是功能。

怎么可能做到这一点?我比较喜欢简单,但是这个问题可能不太可能

答案1

一种解决方案是这样的。假设我们想要退出退出代码为 42 的脚本,无论它是来源还是在自己的进程中运行:

return 42 || exit 42

即尝试return 42。如果失败,请尝试exit 42,预计不会失败。

相关内容