1. ホーム
  2. bash

[解決済み] Bashで数値を比較するには?

2022-03-14 21:05:57

質問

数値比較がうまくいきません。

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;

問題は、1桁目からの数字を比較することです。つまり、9は10より大きいですが、1は09より大きいのです。

真の比較を行うには、どのように数字を型変換すればよいのでしょうか?

どのように解決するのですか?

Bashの場合、チェックは 算術コンテキスト :

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

をサポートしないPOSIXシェルでは (()) を使用することができます。 -lt-gt .

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

比較演算子の全リストは help test または man test .