2つの数字を比較する方法

2つの数字を比較する方法

次の 2 つの値があります。

val1=13.2.8
val2=15.0.5

val1より小さいことを確認したいと思いますval2。以下を試しました。

echo "if ($val1<$val2) 1" | bc

ただし、次のエラーが発生します。

syntax error on line 1, teletype

一般的な浮動小数点数の場合はうまく機能します。

これを達成するための最良の方法は何ですか?

ベストアンサー1

これは少なくとも数学的な意味では数字ではありません。おそらくあなたが望むものバージョン文字列比較(GNU(および他の場合も可能)で提供)sort --version-sort/ sort -V

if [[ "$(sort --version-sort <<< "$(printf '%s\n' "$val1" "$val2")" | head --lines=1)" = "$val1" ]]
then
    echo "$val1 <= $val2"
fi

おすすめ記事