Bash:如何引用其名称中包含另一个变量的变量?

时间:2014-02-21 15:18:02

标签: bash variables syntax

我有一个运行变量,假设当前迭代的值为INDEX = 1122。我已经出口了:

export PRO"$INDEX"=/some/fancy/dirry

现在我想引用这个变量,但如果我这样做:

echo $"PRO$INDEX"

我明白了:

PRO1122

相反,我希望看到:

/some/fancy/dirry

很像echo $PRO1122的结果。

但是,我当然不能在循环中对值1122进行硬编码。

2 个答案:

答案 0 :(得分:6)

BASH已经有了一个变量引用机制。

你可以这样做:

v="PRO$INDEX"
echo "${!v}"
/some/fancy/dirry

答案 1 :(得分:3)

使用eval

eval echo '$PRO'$INDEX

但似乎你应该使用数组而不是将索引嵌入到变量名中。