if $varib contains non-numeric charctr then...

I've asked a similiar question to this, but this time it is different, a little more restrictive....I have a variable, $varib, that should always only contain numeric characters. I need a way to echo something if the variable contains a letter, space, or some other punctuation character, ,.!>?" etc.
Previously I used: grep '[a-zA-Z]' and that can work for letters, but what about the other characters?

#!/usr/bin/bash
#my checkbk
#input
echo "input number"
read varib
#if $varib contains a letter, space, comma, period, or other character
#echo something
#exit 1
#else
#echo good number, thanks.

Please put code inside

 tags.


#!/usr/bin/bash
#my checkbk
#input
echo "input number"
read varib
#if $varib contains a letter, space, comma, period, or other character
#echo something
#exit 1
#else
#echo "good number, thanks."

[/quote]

[indent]

 case $varib in
     *[!0-9]*) echo something; exit 1 ;;
     *) echo good number, thanks. ;;
 esac

What about just negotiation: grep [^0-9] :

if $(echo $varib|grep [^0-9] &>/dev/null) ; 
then echo WRONG_CHARS_FOUND; 
else echo NOTHING_WRONG; fi

But, generally, why not to check every charactr for any rules:

var_sz=${#varib}
for (( i=1; i<=var_sz; i++ )); do
  char=$(echo $varib|cut  -c$i); #or : char=${varib:$i-1:1}
  #-now check any validity
done

Although, just to check a valid number, I would prefer that way:

if ((10#${varib}==$varib)) &>/dev/null ; 
then echo A_NUMBER; 
else ec NOT_A_NMB; fi

Any questions - ask, I will explain.