如何在shell脚本中对eval变量进行计算

如何在shell脚本中对eval变量进行计算

我想在 shell 脚本中对 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

相关内容