Bashで小数点を比較
Bashで数値の比較演算を行う場合は, testコマンドを使います.
val1="10" val2="11" test $val1 -lt $val2 # or if [ $val1 -lt $val2 ]; then echo "OK" fi
ところで, 比較する値に小数点が含まれていると, この方法では比較できません. 次のエラーが返されます.
val1="10.1" val2="11.1" test $val1 -lt $val2 bash: line 3: test: 10.1: integer expression expected
この場合は, bcコマンドを組み合わせて比較します.
val1="10.1" val2="11.1" test $(bc <<< "$val1 < $val2") = "1"
Zshの場合は, もうちょっと簡単に書けますな.
val1=2.1 val2=3.1 test $((val1 < val2)) -eq 1