Como paralelizar o loop for no número limitador de processos do bash
Eu tenho um script bash semelhante a:
NUM_PROCS=$1
NUM_ITERS=$2
for ((i=0; i<$NUM_ITERS; i++)); do
python foo.py $i arg2 &
done
Qual é a maneira mais direta de limitar o número de processos paralelos a NUM_PROCS? Estou procurando uma solução que não exija pacotes / instalações / módulos (como o GNU Parallel), se possível.
Quando tentei a última abordagem de Charles Duffy, obtive o seguinte erro do bash -x:
+ python run.py args 1
+ python run.py ... 3
+ python run.py ... 4
+ python run.py ... 2
+ read -r line
+ python run.py ... 1
+ read -r line
+ python run.py ... 4
+ read -r line
+ python run.py ... 2
+ read -r line
+ python run.py ... 3
+ read -r line
+ python run.py ... 0
+ read -r line
... continuando com outros números entre 0 e 5, até que muitos processos foram iniciados para o sistema manipular e o script bash foi desligado.