Как подождать в bash script для нескольких подпроцессов, порожденных из этого script, чтобы закончить и вернуть код выхода!= 0, когда какой-либо из подпроцессов заканчивается кодом!= 0?
Простой script:
#!/bin/bash
for i in `seq 0 9`; do
doCalculations $i &
done
wait
Вышеупомянутый script будет ждать все 10 порожденных подпроцессов, но всегда будет давать статус выхода 0 (см. help wait
). Как я могу изменить этот script, чтобы он обнаружил статусы выхода порожденных подпроцессов и возвращал код выхода 1, когда какой-либо из подпроцессов заканчивается кодом!= 0?
Есть ли лучшее решение для этого, чем сбор PID подпроцессов, ожидание их по порядку и суммирование статусов выхода?