ocehb: (Default)
ocehb ([personal profile] ocehb) wrote2006-07-13 02:42 pm
Entry tags:

Гхм... :)

Дан скрипт:

#!/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 $?