쉘 스크립트에서 평가 변수를 계산하는 방법

쉘 스크립트에서 평가 변수를 계산하는 방법

쉘 스크립트의 eval 변수에 대해 수학 연산을 수행하고 싶지만 작동하지 않습니다.

query=first
eval avgOverall$query[1]=28.5

avgOverall=$(("`eval echo '${avgOverall'$query'[1]}'`+1")) | bc

하지만 다음과 같은 오류가 발생했습니다.

bash: "28.5+1": syntax error: operand expected (error token is ""28.5+1"")

내가 뭘 잘못했나요?

답변1

다음과 같이 쓰는 것은 고통스럽습니다.

avgOverall=$(eval echo '${avgOverall'$query'[1]}' + 1 | bc )

Bash 버전 4를 사용하는 경우 연관 배열을 사용하세요.

declare -A avgOverall
avgOverall[$query,1]=28.5
avg=$( bc <<< "${avgOverall[$query,1]} + 1" )
echo $avg

관련 정보