In bash shell, how do we judge if a variable is a string or number? Here, number could be an integer or a float. This link "How to judge a variable's type as string or integer" seems to only work integer.
You could expand the proposed regular expression, dependent on the desired number format(s):
[[ $value =~ ^[0-9]+(\.[0-9]+)?$ ]] would recognize 2 or 2.4 as a number but 2. or .4 as a string.
[[ $value =~ ^(\.[0-9]+|[0-9]+(\.[0-9]*)?)$ ]] would recognize all 2, 2.4, 2. and .4 as numbers
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With