#!/bin/bash # Indirect variable referencing. # This has a few of the attributes of references in C++. a=letter_of_alphabet letter_of_alphabet=z echo "a = $a" # Direct reference. echo "Now a = ${!a}" # Indirect reference. # The ${!variable} notation is more intuitive than the old #+ eval var1=\$$var2 echo t=table_cell_3 table_cell_3=24 echo "t = ${!t}" # t = 24 table_cell_3=387 echo "Value of t changed to ${!t}" # 387 # No 'eval' necessary. # This is useful for referencing members of an array or table, #+ or for simulating a multi-dimensional array. # An indexing option (analogous to pointer arithmetic) #+ would have been nice. Sigh. exit 0 # See also, ind-ref.sh example.