Você pode usar eval
ou indireto:
eval echo \$chg_$i
ou
varname=$chg_$i
echo ${!varname}
No bash, eu defini
chg_Li=3
chg_Na=9
Agora, desejo chamar $chg_$i
, em que i
está em loop, fazendo o loop por Li
e Na
.
Qual é a sintaxe correta para chamar $chg_$i
?
Você pode usar eval
ou indireto:
eval echo \$chg_$i
ou
varname=$chg_$i
echo ${!varname}
Como foi mencionado, você pode usar indiretamente para isso:
$ chg_Li=3
$ chg_Na=9
$ post_fix=(Li Na)
$ for j in ${post_fix[@]}; do chg="chg_$j"; echo "${!chg}"; done;
3
9