> On Mon, Mar 11, 2024, 20:13 Mischa Baars <mjbaars1977.bac...@gmail.com> > wrote: > > > Also I don't think that gives you an exit status for each 'exit $i' > > started. I need that exit status.
"wait -n" without a PID won't help you, then. You don't get the PID or job ID that terminated, and you don't get the exit status. It's only of interest if you're trying to do something like "run these 100 jobs, 5 at a time" without storing their exit statuses. If you need to reap each individual job and store its exit status indexed by its PID, then you're probably going to need something like: #!/bin/bash i=0 pid=() status=() for job in ...; do longrunner "$job" & pid[i++]=$! done for ((i=0; i < ${#pid[@]}; i++)); do wait "${pid[i]}"; status[i]=$# done You won't be able to take advantage of "wait -n"'s ability to react to the first job that finishes. You'll end up reaping each job in the order they started, not the order they finished.