1

What I try to do is something like:

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

Normally I expect an output like 6 but instead it produces a -nan output. Which one of my statements is not correct?

Thanks.

JavaRed
  • 708
  • 4
  • 10
  • 34

1 Answers1

2

When you are passing vars to awk:

-v var1=$parameter_${city}_${var1}

since you are not using eval, awk variables do not get the desired value. Instead try something like:

-v var1=$(eval echo \$parameter_${city}_${var1})

But perhaps you can store the data in an associative array.

Community
  • 1
  • 1
perreal
  • 94,503
  • 21
  • 155
  • 181