bash 中带有变量子字符串的变量

bash 中带有变量子字符串的变量

在bash中,我定义了

chg_Li=3
chg_Na=9

现在我想在 for 循环中调用$chg_$iwhere is ,循环遍历and 。iLiNa

调用的正确语法是什么$chg_$i

答案1

您可以使用eval或间接:

eval echo \$chg_$i

或者

varname=$chg_$i
echo ${!varname}

答案2

如前所述,您可以为此使用间接:

$ chg_Li=3
$ chg_Na=9
$ post_fix=(Li Na)
$ for j in ${post_fix[@]}; do chg="chg_$j"; echo "${!chg}"; done;
3
9

相关内容