我在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...。
但是,有没有一种方法可以编写一个中止整个执行过程的函数,而无论其调用方式如何?我只需要获取实际的返回值(由函数回显)。
setsid()
函数,但是它的工作方式并不完全相同。已更新为不使用该setsid
命令,因为它将要求我们开始一个新过程。