![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Дан скрипт:
#!/bin/sh -e
action1
action2
action3
action${i} — некоторые существующие в системе программы, прописанные в $PATH. Известно, что action1 и action2 никак не зависят друг от друга и могут выполняться параллельно, однако action3 требуется, чтобы и action1, и action2 успешно завершили свою работу.
Что необходимо изменить в скрипте, чтобы распараллелить работу action1 и action2, но запускать action3 только после успешного завершения action1 и action2?
#!/bin/sh -e
action1
action2
action3
action${i} — некоторые существующие в системе программы, прописанные в $PATH. Известно, что action1 и action2 никак не зависят друг от друга и могут выполняться параллельно, однако action3 требуется, чтобы и action1, и action2 успешно завершили свою работу.
Что необходимо изменить в скрипте, чтобы распараллелить работу action1 и action2, но запускать action3 только после успешного завершения action1 и action2?
#! /bin/sh
action1 & ; pid1=$!
action2 & ; pid2=$!
wait $pid1 ; ret1=$?
wait $pid2 ; ret2=$?
[ $ret1 -eq 0 -a $ret2 -eq 0 ] && action3
exit $?