#!/bin/bash maxj=`getconf _NPROCESSORS_ONLN` jobs=() [[ $# -eq 0 ]] && set -- *.flac for f in "$@" ; do m="${f%.flac}.mp3" ( flac -sdc "${f}" | \ lame --silent -V 0 -h - "${m}" id3cp "${f}" "${m}" ) & jobs+=( $! ) if [[ ${#jobs[@]} -eq ${maxj} ]] ; then wait ${jobs[0]} jobs=( ${jobs[@]:1} ) fi done wait