그것을하는 방법은 수천 가지가 있습니다. 다음 dc
은 무제한 정밀 산술을 지원하는 리버스 데스크 계산기입니다.
dc <<<"$num1 $num2 + p"
그러나 그것이 당신을 위해 너무 bash-y (또는 이식성 문제)라면 말할 수 있습니다.
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
Bash FAQ 022에 설명 된대로 Bash는 기본적으로 부동 소수점 숫자를 지원하지 않습니다. 부동 소수점 숫자를 합산해야하는 경우 외부 도구 ( bc
또는 같은 dc
)를 사용해야합니다.
이 경우 해결책은
num=$(dc <<<"$num $metab + p")
부동 소수 점수를에 추가 num
합니다.