[olug] Test for integer in bash
John Hobbs
john at velvetcache.org
Wed Nov 28 22:21:16 UTC 2007
Hello all,
This is kind of a two part question.
First, does anyone know of a better way to test for an integer in bash
than this?
#!/bin/bash
function testInt {
echo "Testing: $1"
echo "$1" | grep ^[0-9]*$ > /dev/null
if [ "$?" -eq 0 ]; then
echo 'yep, it should be an integer.'
else
echo 'nope, dunno what it is.'
fi
echo
}
testInt 900
testInt foobar
testInt
Secondly, I'm sure you've noticed that the last test of nothing
returns as a match. Why can't I get the correct regex, echo 900 |
grep ^[0-9]+$ , to work? echo 900 | grep ^[0-9]{1,}$ fails too.
Thanks for taking a look.
- John
More information about the OLUG
mailing list