小编典典

如何比较 Bash 中的数字?

all

我无法进行数字比较:

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。

如何将数字转换为类型以进行真正的比较?


阅读 225

收藏
2022-03-02

共1个答案

小编典典

在 Bash 中,您应该在算术上下文中进行检查:

if (( a > b )); then
    ...
fi

对于不支持的 POSIX shell (()),您可以使用-lt-gt

if [ "$a" -gt "$b" ]; then
    ...
fi

help test您可以使用or获得比较运算符的完整列表man test

2022-03-02