Існує тисяча і один спосіб зробити це. Ось такий, який використовується dc
(зворотний польський калькулятор, який підтримує арифметику необмеженої точності):
dc <<<"$num1 $num2 + p"
Але якщо це занадто баш-у для вас (або питання портативності), ви можете сказати
echo $num1 $num2 + p | dc
Але, можливо, ти один із тих людей, хто вважає, що RPN є примхливим і дивним; не хвилюйся! 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
Як описано в FAQ B2 022 , Bash не підтримує номери з плаваючою комою. Якщо вам потрібно підсумовувати числа з плаваючою комою, використовуйте зовнішній інструмент (наприклад, bc
абоdc
).
У цьому випадку рішення було б
num=$(dc <<<"$num $metab + p")
Для додавання накопичувальних номерів, можливо, з плаваючою комою num
.