#!/bin/bash
if test $# -lt 2
then
echo "usage: `basename $0` <string> <dir1> [<dir2>...]" \
" [<--> [<grep additional options>...]]" 1>&2
exit 1
fi
str="$1" && shift
declare -a dir
i=0
while test "x$1" != "x"
do
test "x$1" == "x--" && { shift; break; }
test -d "$1" || {
echo "`basename $0`: $1: no such directory" 1>&2
exit 1
}
dir[$i]="$1" && shift
i=$((i+1))
done
j=0
while test $j -lt $i
do
d="${dir[$j]}"
case $d in
-*) d="./$d";;
esac
find "$d" -type f -print0 | xargs -0 grep "$@" -- "$str"
j=$((j+1))
done
exit 0