1

bash スクリプトで整数と浮動小数点を比較しようとしています。私は次のことを試しました:

if [ $? -eq 4.189 ];

4.189 を整数にしたいので、これは機能しません。

if [ $? = 4.186 ];

うまくいくかもしれないと思ったからです。bcもやってみました。これを行う方法に関するヒントはありますか?ここで初心者をバッシュします。本当にありがとう。

注: $? 球の体積を計算する実行可能ファイルからの出力です。

4

1 に答える 1

3

これはうまくいきます

#!/bin/bash
volume=4.189
if [[ $(echo "$volume == 4.189" | bc) -eq "1" ]]; then
    echo Equal
else
    echo Not Equal
fi

または単にリテラルを引用符で囲みます

#!/bin/bash
volume=4.189
if [[ $volume == "4.189" ]]; then
    echo Equal
else
    echo Not Equal
fi

浮動小数点を比較するために示した 2 つの方法のうち、推奨されるのは bc を使用することであることに注意してください。4.1890 が 4.189 に等しいことがわかりますが、2 番目の方法はダム文字列の比較であり、比較は等しくありません。

于 2013-02-19T00:58:01.713 に答える