浮動小数点値を比較する次のコマンドは bash ではうまく機能しますが、AIX の ksh では機能しません。
if (( $(bc <<< " 5.3 >= 5.3") ));then echo "hi";else echo "bye";fi`,
私はいくつかの方法を試しましたが、誰でもこれを達成する方法を提案できますか?
ベストアンサー1
~によるとBCのPOSIX規格:
他のすべての演算子とは異なり、関係演算子 ("<", ">", "<=", "">=", "==", "!=") は if、while、または for ステートメントでのみ使用されます。 。
これは、単純な比較でtrueまたはfalseを評価できるGNU / Linux拡張のようです。
bc の出力が 1 か 0 かを確認する代わりに、test
以下を使用してください。
if [ 5.3 -ge 5.3 ]; then echo hi; else echo bye; fi
または算術拡張(ksh93)を使用してください。
if (( 5.3 >= 5.3 )); then echo hi; else echo bye; fi
またはawkを使用してください:
if awk -v x=5.3 -v y=5.3 'BEGIN { exit (x >= y) ? 0 : 1 }'; then echo hi; else echo bye; fi