Às vezes, você pode precisar fazer o nome da variável no tempo de execução (por exemplo, se você precisar escolher uma das constantes predefinidas) inserindo a variável no nome da variável. Para esses casos, você pode usar referências indiretas.
Por exemplo:
#!/bin/bash
foo_num=2
foo_name="I am foo"
bar_num=3
bar_name="I am bar"
elements=( foo bar )
for element in ${elements[@]}
do
#dynamicly making variable name
current_num=$element_num
current_name=$element_name
#getting values
echo "Element name: ${!current_name}"
echo "Element number: ${!current_num}"
echo"---"
done
Este script produzirá saída:
Element name: My name is foo
Element number: 2
---
Element name: My name is bar
Element number: 3
---