それを行う方法は千通りあります。以下はdc
、使用するものです(無制限の精度演算をサポートするリバースポリッシュデスク計算機)。
dc <<<"$num1 $num2 + p"
しかし、それがあなたにとってあまりにもbash-yである場合(または移植性の問題)、次のように言うことができます。
echo $num1 $num2 + p | dc
しかし、おそらくあなたはRPNがおかしくて変だと思っている人の1人でしょう。心配しないで!bc
あなたのためにここにあります:
bc <<< "$num1 + $num2"
echo $num1 + $num2 | bc
そうは言っても、スクリプトに関係のないいくつかの改善点があります。
#!/bin/bash
num=0
metab=0
for ((i=1; i<=2; i++)); do
for j in output-$i-* ; do # 'for' can glob directly, no need to ls
echo "$j"
# 'grep' can read files, no need to use 'cat'
metab=$(grep EndBuffer "$j" | awk '{sum+=$2} END { print sum/120}')
num=$(( $num + $metab ))
done
echo "$num"
done
Bash FAQ 022で説明されているように、Bashは浮動小数点数をネイティブでサポートしていません。浮動小数点数を合計する必要がある場合は、外部ツール(bc
またはなどdc
)を使用する必要があります。
この場合の解決策は
num=$(dc <<<"$num $metab + p")
浮動小数点数の累積をに追加しnum
ます。