@ffledgling I'd probably compare to the string true or false to determine if its a boolean and see if it looks like a number using a regular expression.

Something like:

if [ -z "${VAR/[0-9]*/}" ]; then
  ... looks like a number...
fi