Q:

Shell script is numeric control

echo
echo -e "\033[31m GAME - DB BUİLD!  \033[0m"
echo
echo -e "\033[32m Choose What to be BUILDED; \033[0m"

echo -e "\033[36m 
 1 - GAME \n 
 2 - DB \n
 3 - GAME + DB \033[0m"
echo
echo -e "\033[32m Enter number to select ENTER.  \033[0m"
echo
read build_file_cont

while [ $build_file_cont -lt 1 ] || [ $build_file_cont -gt  3 ]; do
    clear
    echo "If you have done wrong, try again.;" 
    echo
    echo -e "\033[32m Choose What to be BUILDED; \033[0m"
    echo -e "\033[36m 
     1 - GAME \n 
     2 - DB \n
     3 - GAME + DB \033[0m"
    echo -e "\033[32m Enter number to select ENTER.  \033[0m"
    echo
    read build_file_cont
done

As you can see above, I only check if you enter between 1 and 3, but if the numeric value does not enter, the program still works. 
I want to check it if the user has not entered a numeric value. 
how do I make it just enter numeric value. 

A:

A non-numeric value compared in numeric context, as you are doing it, is taken as zero, which is less than 1.  
As for testing, that a value is numeric, I guess you mean testing that it is an integral number, since POSIX shell does not support fractional arithmetic anyway, and you also don't have pattern matching for comparision as in, say, bash or zsh. 
Pattern matching is available in parameter expansion.  ${build_file_cont#*[^0-9]} would return the content of the variable, but the smallest prefix removed, which would fulfil the pattern after #.  If build_file_cont contains only digits, the pattern does not match and the result is the same as the original:
if [ "${build_file_cont} =  "${build_file_cont#*[^0-9]}" ]
then
  # build_file_cont is numeric
  ...
fi

But this still does not catch the case of negative numbers.  I would query them separately:
abs=${build_file_cont#-}
if [ $abs = $build_file_cont }
then
  # $build_file_cont is not negative
else
  # $build_file_cont is the negative of $abs
  # Verify that $abs contains only digits
fi

Finally, I would get rid of leading/trailing/embedded spaces, before testing for the other stuff.  You have to revert to an external utility (tr)  for this:
build_file_cont=$(echo $build_file_cont|tr -d ' ')

