シェルスクリプトで数値計算

シェルスクリプトで数値計算

Linux(FreeBSD)シェルスクリプトで数値計算

シェルスクリプトで数値計算をする時に expr を使用することが多いですが、割算をした場合は小数部分を表示させることができません。例えば、3 / 5 の場合は実際に計算をすると 0.6 になりますが、expr 3 / 5 の結果は 0 が返ります。

そこで、もう少し複雑な計算をさせる場合は bc コマンドを利用します。bc コマンドに計算式を標準読み込みさせると結果を算出してくれます。この際、セミコロンで計算式を区切ることで複数の指定ができます。scale は小数点以下何桁までを表示するかを指定します。

USE=`echo "scale=5; (3512 / 28570) * 100" | bc`
echo "${USE}%"

12.29200%

また、計算は小数を考慮したいけど最後の出力は整数値で表示したい場合も出てくると思いますが、指定方法を見つけることができなかったので、awk を使って無理矢理取り出しちゃいました・・・。

USE=`echo "scale=5; (3512 / 28570) * 100" | bc | awk -F'.' '{print $1}'`
echo "${USE}%"

12%

最終更新日:

関連記事

人気記事

新着情報