Need a script to check if an argument is valid shell variable

I need a script that should print 'yes' if the argument is a valid shell variable name else 'No' if it is not a valid shell variable. A valid one begins with an alphabet or percentage (%) character and is followed by zero or more alphanumberic or percentage (%) characters.

For example:

$ example.sh 369
no
$ example.sh abs_lo
yes
$ example.sh %london
yes

Thanks,
Arjun

You do realise we are not here to do the work for you but to help you do your work!
Not quite the same thing, so what cant you do or what have you done so far?

This is what I have written but I am not sure if it is correct as I am new to UNIX

 
#!/bin/sh
FirstChar = cut -c1 $1
if [FirstChar -eq A-z] || [FirstChar -eq a-z]|| [FirstChar -eq '%']
then
    Echo "yes"
else
    Echo "no"
fi

Let me know if it is correct.

Thanks

1) a test like [FirstChar -eq A-z] needs:
space between the square brackets: [ FirstChar -eq A-z ]
then -eq is for numeric values (Integers)

e.g.

ant:/home/vbe $ 0002 tata
STR=tata
Firstchar=t
YES
ant:/home/vbe $ 0002 0titi
STR=0titi
Firstchar=0
NO
ant:/home/vbe $ 0002 %toto
STR=%toto
Firstchar=%
YES
ant:/home/vbe $ 0002 1gaga
STR=1gaga
Firstchar=1
NO

So a possible solution or a base to start to work on:

#!/bin/sh
STR=$1
echo STR=$STR
Firstchar=$(echo $STR|cut -c1)
echo Firstchar=$Firstchar

if [ "$Firstchar" = "%"  ]
then
   echo YES
else
   let I=$Firstchar+1 2>>/dev/null
   if [ $I -ge 1 ]   #or [ $I -gt 0 ]
   then
      echo NO
   else
      echo YES
   fi
fi

Im impressed by the little reactiveness of thread owner.. wanted to show him the correct syntax but also this approach would be laborious and point him to some readings like:
Case statement in shell

Because here obviously its case statement that should be used...
Oh well...