Bash – Variable indirection – Using variable contents as a(nother) variable name
This was a tricky action. Assume I have a list of variables, obtained by an external source:
var1=a
var2=b
var3=c
I cannot use loop and in it the phrase ${var$i} (where i is the integer counter). It just doesn’t work. I used this instead to assign the values to an array:
var[$i]=$(eval echo "${var${i}}")
That way, I was able to loop through these values later easily.
So… we can use assigned var names inside a var if we do it right: $(eval echo "${var${i}}")