Question variables Korn

I'm using the following command to test for certain characters in a script

echo "${1}" | grep '\$'
if (( ${?} == 0 ))
then

testing this script on the command line I have

ksh -x script1.sh "xxxx$xxxx"

this works fine but when I want to use

ksh -x script1.sh "xxxx $xxx"

the interpreter tells me that the field is blank. Why?
it dosen't like space how do I get around this? My script will be passed variables with spaces in them.

When passing arguments with special characters
for instance the "$" symbol, you should escape them
assuming you wish them to be passed to the shell
undisturbed. Otherwise, you command shell will try to
interpret it first and pass those results to your script.

try...
ksh -x script1.sh "xxxx \$xxx"