开发者

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 $?
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜