我无法进行数字比较:
echo "enter two numbers"; read a b; echo "a=$a"; echo "b=$b"; if [ $a \> $b ]; then echo "a is greater than b"; else echo "b is greater than a"; fi;
问题是它从第一个数字开始比较数字,即9大于10,但1大于09。
如何将数字转换为类型以进行真正的比较?
在 Bash 中,您应该在算术上下文中进行检查:
if (( a > b )); then ... fi
对于不支持的 POSIX shell (()),您可以使用-lt和-gt。
(())
-lt
-gt
if [ "$a" -gt "$b" ]; then ... fi
help test您可以使用or获得比较运算符的完整列表man test。
help test
man test