>=予想される単項演算子または予想される-eq整数式

>=予想される単項演算子または予想される-eq整数式
monterey2="12.0"
macOS=$(sw_vers -productVersion)
if [ "$macOS" >= "$monterey2" ] ; then
  echo "Monterey"
else 
  echo "not Monterey"
fi
exit 0

このエラーは、出力 -> "[:12.2.1: 単項演算子の予測"です。私も同じ結果で-eqを試しました。私は何が間違っていましたか?

ベストアンサー1

両方のバージョン番号をエコーしsort -V​​、どちらのバージョンが最初に表示されるかを確認します(テキストで)。テキストで一致する場合、$monterey2値は次sw_versの値以上です。

浮動小数点比較はバージョン番号では機能しません。その理由は、部分がすべて整数であるためです(必ずしも2つである必要はありません)。例:

12.3 is earlier than 12.10
12.3.11 is later that 12.3.8

おすすめ記事