tags:

views:

106

answers:

3

Hi, 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 b 2

And that's not what I want)

Thanks, Rivka

+4  A: 

check return status of a command, corresponding variable is $?. alternatively, you can short-circuit using command || exit

aaa
+1  A: 
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.

X-Istence
A: 

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 $?
Adam Rosenfield