per favore una mano...
non riesco a trovare l' errore...

il programmino deve cercare nella gerarchia specificata tutti i direttori in cui sia presente almeno un file che contiene (NB nel contenuto) almeno uno dei caratteri passati come argomento.

dunque il file principale è questo:

#! /bin/sh
#compito dir_ass c1 c2 cn

case $# in
0|1) echo formato non valido; exit;;
*);;
esac

#controolo se è un direttorio assoluto
case $1 in
/*) if test ! -d $1
then echo non è un direttorio
exit
fi;;
*) echo non è assoluto
exit;;
esac

DIRASS=$1
shift # elimino il primo argomento

#controllo se sono caratteri
for i in $*
do
case $i in
?);;
*)echo argomento sbagliato
exit;;
esac
done

export PATH=`pwd`:PATH
#chiamo il file ricorsivo
cerca03 $DIRASS $*
#fine primo file

secondo file:
#inizio file cerca03
cd $1

trovato=false
shift
for i in *
do
if test -f $i -a -r $i
then
for j in $*
do
if grep $j $i
then trovato=true
break
fi
done
fi

if test -d $i
then cerca03 $i $*
fi
done

if test $trovato = true
then echo `pwd`
fi

#fine file

il problema sta nel secondo file infatti quando va per eseguire grep mi da errore

non capisco quale sia il problema se c'è qualcuno che mi può dire dove sbaglio gliene sarò eternamente riconoscente...grazie