How to check if a variable is a number in fish shell? Looking for a simple way of doing it.
One possible solution is using string match
as follows:
for arg in 9 -42 0 3.14159 stack overflow hyphenated-word 922-99999 0...0 555.555.555
if string match -qr '^-?[0-9]+(\.?[0-9]*)?$' -- "$arg"
echo $arg is a number
end
end
9 is a number
-42 is a number
0 is a number
3.14159 is a number
If num
is not a number nothing is echo-ed.
Here's string match
synopsis from fish shell documentation (https://fishshell.com/docs/current/commands.html#string):
string match [(-a | --all)] [((-e | --entire)] [(-i | --ignore-case)] [(-r | --regex)]
[(-n | --index)] [(-q | --quiet)] [(-v | --invert)] PATTERN [STRING...]