在bash中,有没有办法在变量中替换或嵌套变量?

时间:2017-05-11 14:43:02

标签: bash

说我有两个变量;

-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

1 个答案:

答案 0 :(得分:0)

基本上,您可以使用evalecho $(eval '$var_'"${i}")

但你也可以使用词典:

declare -A vars
vars=( ["one"]="number-one" ["two"]="number-two" )
i="one"
echo "${vars[${i}]}"