How to exit all the calling scripts in bash?
Lets say I have the following scripts
a.sh
echo in a
if test 1 -ne 2; then
echo oops
exit 1
fi
b.sh
echo in b
./a.sh
echo in b 2
When running b.sh, I want it to exit if a.sh exited. How do I do this?
(The current output is
in b
in a
oops
in开发者_Python百科 b 2
And that's not what I want)
Thanks, Rivka
check return status of a command, corresponding variable is $?
.
alternatively, you can short-circuit using command || exit
echo in b
./a.sh && echo in b 2
This basically checks that the first script does not exit non-zero. If that is true, and only then will it run the second function.
I don't think there's a way you can do it without explicitly checking the return status of the subshell, e.g.:
# This will run b.sh, and if that exits with a non-zero status, we will also
# exit with that same status; otherwise, we continue.
./b.sh || echo $?
精彩评论