Il y a mille et une façons de le faire. Voici une utilisation dc
(une calculatrice de bureau à polissage inversé qui prend en charge l'arithmétique de précision illimitée):
dc <<<"$num1 $num2 + p"
Mais si c'est trop bash-y pour vous (ou si la portabilité est importante), vous pourriez dire
echo $num1 $num2 + p | dc
Mais peut-être que vous êtes une de ces personnes qui pensent que RPN est dégueulasse et bizarre; ne t'inquiète pas! bc
est là pour vous:
bc <<< "$num1 + $num2"
echo $num1 + $num2 | bc
Cela dit, vous pouvez apporter des améliorations indépendantes à votre script:
#!/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
Comme décrit dans la FAQ Bash 022 , Bash ne prend pas en charge nativement les nombres à virgule flottante. Si vous devez additionner des nombres à virgule flottante, l'utilisation d'un outil externe (comme bc
ou dc
) est requise.
Dans ce cas, la solution serait
num=$(dc <<<"$num $metab + p")
Pour ajouter des nombres à virgule flottante éventuellement accumulés dans num
.