#!/bin/bash : ${_cmd:="echo"} : ${PMAX:=`ls -1d /sys/devices/system/cpu/cpu* | wc -l`} dispatchWork() { while read -r -u 0 LINE do while [ $(jobs -rp | wc -l) -ge $PMAX ] do sleep 1 done eval $_cmd "$LINE" & done wait }