我在 Bash 函数中使用了“ exit 1”语句来终止整个脚本,它工作得很好:
function func()
{
echo "Goodbye"
exit 1
}
echo "Function call will abort"
func
echo "This will never be printed"
但后来我意识到,它不能完成工作,当被叫做:
res=$(func)
我知道我创建了一个子 shell,“ exit 1”中止了这个子 shell,而不是主要的子 shell; 有没有一种方法可以编写一个中止整个执行的函数,不管它是如何调用的?
我只需要得到真正的返回值(由函数回显)。