쉘 스크립트의 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