mirror of https://github.com/tLDP/LDP
33 lines
730 B
Bash
33 lines
730 B
Bash
#!/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.
|