I was using the "exit 1" statement in my Bash functions to terminate the whole script and it worked fine:
function func()
{
echo "Goodbye"
exit 1
}
echo "Function call will abort"
func
echo "This will never be printed"
But then I realized that it doesn't do the work when called like:
res=$(func)
I understand that I created a subshell and "exit 1" aborts that subshell and not the primary one....
But is there a way to write a function which aborts the whole execution, no matter how it is called? I just need to get the real return value (echoed by the function).
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…