Bashで数値を比較するにはどうすればいいですか? 質問する

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 より大きいです。

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

ベストアンサー1

Bashでは、チェックを算数の文脈:

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

をサポートしていない POSIX シェルの場合は、と を(())使用できます。-lt-gt

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

help testまたはを使用すると、比較演算子の完全なリストを取得できますman test

おすすめ記事