说我有两个变量;
-i
我将如何完成这样的事情(伪代码示例);
示例1
var_one_string=foo
var_two_string=bar
示例2
for i in one two; do
echo $var_${i}_string
done
# Desired output
foo
bar
我明白这是不好的替换,我只是想知道是否有办法在另一个变量调用中嵌套字符串?
编辑:我能够让它运作
for i in one two; do
echo $var_$(echo ${i})_string
done
# Desired output
foo
bar
答案 0 :(得分:0)
基本上,您可以使用eval
:echo $(eval '$var_'"${i}")
但你也可以使用词典:
declare -A vars
vars=( ["one"]="number-one" ["two"]="number-two" )
i="one"
echo "${vars[${i}]}"