bash의 변수 하위 문자열이 있는 변수

bash의 변수 하위 문자열이 있는 변수

Bash에서 나는 정의했습니다.

chg_Li=3
chg_Na=9

$chg_$i이제 for 루프의 어디에 있는지 호출 하고 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

관련 정보