开发者

How to exit all the calling scripts in bash?

开发者 https://www.devze.com 2022-12-19 22:39 出处:网络
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

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

精彩评论

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

关注公众号