如何在Bash中比较数字?

16 浏览
0 Comments

如何在Bash中比较数字?

我无法使数字比较起作用:

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大。

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

admin 更改状态以发布 2023年5月19日
0
0 Comments

像这样:

#!/bin/bash
a=2462620
b=2462620
if [ "$a" -eq "$b" ]; then
  echo "They're equal";
fi

整数可以使用这些运算符进行比较:

-eq # Equal
-ne # Not equal
-lt # Less than
-le # Less than or equal
-gt # Greater than
-ge # Greater than or equal

参考这个速查表

0
0 Comments

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

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

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

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

您可以使用help testman test获取完整的比较运算符列表。

0