How to wait in bash for several subprocesses to finish and return exit code !=0 when any subprocess ends with code !=0?

后端 未结 30 2427
悲哀的现实
悲哀的现实 2020-11-22 03:50

How to wait in a bash script for several subprocesses spawned from that script to finish and return exit code !=0 when any of the subprocesses ends with code !=0 ?

S

30条回答
  •  渐次进展
    2020-11-22 04:33

    http://jeremy.zawodny.com/blog/archives/010717.html :

    #!/bin/bash
    
    FAIL=0
    
    echo "starting"
    
    ./sleeper 2 0 &
    ./sleeper 2 1 &
    ./sleeper 3 0 &
    ./sleeper 2 0 &
    
    for job in `jobs -p`
    do
    echo $job
        wait $job || let "FAIL+=1"
    done
    
    echo $FAIL
    
    if [ "$FAIL" == "0" ];
    then
    echo "YAY!"
    else
    echo "FAIL! ($FAIL)"
    fi
    

提交回复
热议问题