数値比較が機能しません:
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
。