views:

33

answers:

1

Hi, I have two scripts say 'S1' and 'S2'. I execute these scripts as,

nohup S1 &

nohup S2 &

But I would like them to execute sequentially. ie., S2 should execute only on successful completion of S1. How should I go about doing this?. How can I know when S1 finishes execution?. Any examples would be much appreciated. Thanks.

+3  A: 

You can execute them, sequentially, like this:

(nohup S1 && nohup S2) &

Try

(echo 1 && sleep 1 && echo 2) &

The double ampersand operator is described here.

Note that when using &&, S2 only runs if S1 finishes "successfully" (return code 0). This seems to be what you wanted. If you want S2 to run regardless of whether S1 succeeds, use ; instead of &&.

Stephen
Thanks a lot!. I'll check that out.
wowrt