Test whether string is a valid integer

[[ $var =~ ^-?[0-9]+$ ]]
  • The ^ indicates the beginning of the input pattern
  • The - is a literal “-“
  • The ? means “0 or 1 of the preceding (-)”
  • The + means “1 or more of the preceding ([0-9])”
  • The $ indicates the end of the input pattern

So the regex matches an optional - (for the case of negative numbers), followed by one or more decimal digits.

References:

Leave a Comment