我尝试做的是:
city="Houston"
var1="1"
var2="2"
var3="3"
eval parameter_${city}_${var1}=444
eval parameter_${city}_${var2}=222
eval parameter_${city}_${var3}=111
eval parameter_${city}_total=$( awk -v var1=$parameter_${city}_${var1} -v var2=$parameter_${city}_${var2} -v var3=$parameter_${city}_${var3} 'BEGIN{print var1 + var2 / var3}' )
echo $parameter_Houston_total
-nan
通常我希望输出像6,但它会产生-nan输出。我的哪一项陈述不正确?
感谢。
答案 0 :(得分:2)
当你将vars传递给awk时:
-v var1=$parameter_${city}_${var1}
由于您没有使用eval,因此awk变量无法获得所需的值。而是尝试类似的事情:
-v var1=$(eval echo \$parameter_${city}_${var1})
但也许您可以将数据存储在an associative array。
中