シェルスクリプトで2つの浮動小数点数を比較する方法

シェルスクリプトで2つの浮動小数点数を比較する方法

シェルスクリプトで2つの浮動小数点数を比較したいと思います。次のコードは機能しません。

#!/bin/bash   
min=12.45
val=10.35    
if (( $val < $min )) ; then    
  min=$val
fi
echo $min 

ベストアンサー1

Bashは浮動小数点演算を理解していません。小数点を含む数値を文字列として扱います。

代わりにawkまたはbcを使用してください。

#!/bin/bash

min=12.45
val=10.35

if [ 1 -eq "$(echo "${val} < ${min}" | bc)" ]
then  
    min=${val}
fi

echo "$min"

数学の多くを計画している場合は、PythonやPerlを使用することをお勧めします。

おすすめ記事