David C. Rankin wrote:
Listmates,
I ran across this bash test for integers and it works brilliantly. It was quite a contrast to the myriad of case $x in ... *[0-9+-]* ... approaches I ran across. I don't know exactly how it works, but only that it works -- apparently great.
If anyone could shed some light on how it works it would be appreciated. I presume it works based upon the differences in the way string and numerical data is held in memory or in a difference in what [ $AM_I_INT ] actually returns and the way the test is carried out. But that is no more than a guess. If anyone has a need, this is a great solution:
AM_I_INT="$1"
if [ $AM_I_INT -eq $AM_I_INT 2> /dev/null ]; then ^^^^^^^^^^^^ Remove the stderr redirection and all will be revealed ;-)
(It relies on -eq expecting integers.)
echo -e "\n\t$AM_I_INT is an integer\n" else echo -e "\n\t$AM_I_INT is not an integer\n" fi
Courtesy of: http://minddownload.blogspot.com/2007/06/test-for-integer-in-bash.html
-- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org