Ci sono mille modi per farlo. Eccone uno che utilizza dc
(una calcolatrice da scrivania con inversione di lucidatura che supporta l'aritmetica di precisione illimitata):
dc <<<"$num1 $num2 + p"
Ma se questo è troppo difficile per te (o la portabilità è importante) potresti dire
echo $num1 $num2 + p | dc
Ma forse sei una di quelle persone che pensano che RPN sia strano e strano; non ti preoccupare! bc
è qui per te:
bc <<< "$num1 + $num2"
echo $num1 + $num2 | bc
Detto questo, ci sono alcuni miglioramenti non correlati che potresti apportare alla tua sceneggiatura:
#!/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
Come descritto nella FAQ 022 di Bash, Bash non supporta nativamente i numeri in virgola mobile. Se è necessario sommare i numeri in virgola mobile, è necessario l'uso di uno strumento esterno (come bc
o dc
).
In questo caso la soluzione sarebbe
num=$(dc <<<"$num $metab + p")
Per aggiungere accumulare numeri eventualmente in virgola mobile in num
.