values

passing values

suggestions : use getopts for the parameters (they should be single letters beginning with a '-' with an optional argument, everything that follows the paramers are parameters like a list of files (you can use wild cards expansion in the shell).
Example:
OPTIND=0
while getopts ":pq:" OPT
do
case "$OPT" in
"p") echo "Option $OPT is specified" ;;
"q") echo "Option $OPT has value $OPTARG" ;;
"?") echo "Unknown option $OPTARG" ;;
":") echo "No argument value for option $OPTARG" ;;
*) echo "Unknown error while processing options" ;;
esac
echo "OPTIND is now $OPTIND"
done
shift $((OPTIND-1)) # This is necessary to set the parameters to what follows the options
FileList="$@" # File1="$1"; File2="$2" etc.
# or FileList=( "$@" ) # if you want an indexed array.

There are many possibilmities but this is IMHO the most flexible way to get all extra information via the command line.
Search on the net for all the possible examples with getopts which is a powerful tool for such purposes.

thanks for ur reply

This is the simpliest way i found.
Important note : There should be no spaces in any parameter (else we should proceed a bit different way by using arrays)
#!/bin/bash
for P in "$@"; do # read alle the parameters on command line
case $P in
-*) Param=${P:1} ;; # This sets Param to 'files' or 'exclude' (given on the command line)
*) eval "$Param+=\"$P \"" ;; # This adds the command line param to Param (which should have been set before via command line)
esac
done
echo "Files are '$files'"
echo "Excluded are '$exclude'"