Solution: 0 Noter l'usage d'eval, de shift ainsi que la présence de la variable MAX permettant de paramétrer le nombre de grep à lancer en parallèle. Noter aussi l'usage de [], autre nom de la commande test.
()
#! /bin/sh

FILES0=
FILES1=
FILES2=
FILES3=

MOTIF=$1
shift

N=0
MAX=4

for f
do
    eval "FILES$N=$FILES$N $f"
    N=`expr $N + 1`
    if [ $N = $MAX ] ;  then N=0 ;  fi
done

N=0

until [ $N = $MAX ]
do
    eval grep ${MOTIF} $FILES$N &
    N=`expr $N + 1`
done

# end of pgrep.sh