if ステートメントで 2 つの 10 進数値を比較したいのですが、期待どおりに結果が得られません。$value 変数に 1 つの 10 進値があるとします。その後 if [ $value -eq 0.00 ]
は動作していませ$value
ん0.00
。
この点で助けてください。前もって感謝します!
if ステートメントで 2 つの 10 進数値を比較したいのですが、期待どおりに結果が得られません。$value 変数に 1 つの 10 進値があるとします。その後 if [ $value -eq 0.00 ]
は動作していませ$value
ん0.00
。
この点で助けてください。前もって感謝します!
float をサポートするシェルもあれば、サポートしないシェルもあります。
いずれにせよ、-eq
演算子は整数間の比較を実行するために存在し、float ではありません (Zsh であっても)。
どのシェルを使用しているかはわかりませんが、2 つの解決策があります。好みの方法を選択してください: 外部依存を避けるか、実際のフロートを操作します。
=
このようにして、文字列を演算子 (文字列等価演算子)と直接比較できます。
A=1.1
B=1.1
if [ "$A" = "$B" ] ; then
echo 'Yeah!'
fi
bc
シェルスクリプト式で(他のプログラムと同様に)呼び出すことができる計算機です。
A=1.1
B=1.1
if [ "$(bc <<< "$A - $B")" = 0 ] ; then
echo 'Yeah!'
fi