シェルスクリプトの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