I tried to  customize grep:

Code:
g () {
if [ -n "$2" ]
then
 i=
 for s in $2
 do
	i="$i --include=*.$s"
 done
 else
	i='--include=*.txt --include=*.ini --include=*.*sh --include=*.c* --include=*.h --include=*.js --include=*.reg'
fi
grep -P -e \'$1\' -r $i
}
or with double quote "$i" as tested and used below

Code:
$ g sys ini
grep:  --include=*.ini: No such file or directory
without it, ie. "", it'll just freeze awhile as if it processes properly,
if one inserts 'echo' to the last line for tracking and test:


echo grep -P -e \'$1\' -r $i 
then reload the alias file and redo it,

Code:
$ g sys ini
grep -P -e 'sys' -r  --include=*.ini
it'll echo correctly to become perfectly a valid grep command line...
What's actually happened and how to fix and solve this ?
Thanks so much in advance.