Hay mil y una formas de hacerlo. Aquí hay uno que usa dc
(una calculadora de escritorio de pulido inverso que admite aritmética de precisión ilimitada):
dc <<<"$num1 $num2 + p"
Pero si eso es demasiado tímido para ti (o la portabilidad es importante), podrías decir
echo $num1 $num2 + p | dc
Pero tal vez eres una de esas personas que piensa que RPN es asqueroso y extraño; no te preocupes! bc
está aquí para ti:
bc <<< "$num1 + $num2"
echo $num1 + $num2 | bc
Dicho esto, hay algunas mejoras no relacionadas que podría estar haciendo en su 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
Como se describe en la Pregunta frecuente 022 de Bash, Bash no admite de forma nativa números de coma flotante. Si necesita sumar números de coma flotante, se requiere el uso de una herramienta externa (como bc
o dc
).
En este caso la solución sería
num=$(dc <<<"$num $metab + p")
Para agregar acumular números de punto flotante posiblemente en num
.