Using grep inside a test

Hi,
I want to use grep inside a test statement, but I am getting an error message.

Two variables

testvarNum=5
testvarNonNum=x

echo $testvarNum | grep [0-9][0-9]*

The result of this is as follows:
5

However, when I try the following (i.e. to test if the variable is numeric or non-numeric):
[ echo $testvarNum | grep [0-9][0-9]* ]

I get an error as follows:

grep: ]: No such file or directory
-bash: [: missing `]'

Why is this? Probably I'm making a simple error.

Thanks for any help

$
$ var=5
$ echo $var
5
$ echo $var | grep [0-9][0-9]*
5
$ if [ `echo $var | grep [0-9][0-9]*` ]; then   echo "in if"; else   echo "in else"; fi
in if
$
$ var="x"
$ echo $var
x
$ echo $var | grep [0-9][0-9]*
$
$ if [ `echo $var | grep [0-9][0-9]*` ]; then   echo "in if"; else   echo "in else"; fi
in else
$
$

tyler_durden

A "dirty" method

read -p "Enter something : " VAR
if [ $VAR -eq $VAR ] 2>/dev/null
then echo "Is number"
else echo "Is not number"
fi

(the 2>/dev/nul is just there to hide the garbage ;))

Thanks for the help guys, that sorted it out!!