Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash:如何引用名称中包含另一个变量的变量?_Bash_Variables_Syntax - Fatal编程技术网

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

Bash:如何引用名称中包含另一个变量的变量?,bash,variables,syntax,Bash,Variables,Syntax,我有一个正在运行的变量,假设当前迭代的值是INDEX=1122。我已出口: export-PRO“$INDEX”=/some/fancy/dirry 现在我想引用这个变量,但如果我这样做: echo$“PRO$索引” 我得到: PRO1122 相反,我希望看到: /some/fancy/dirry 与echo$PRO1122的结果非常相似 但是,我当然不能硬编码循环中的值1122。使用eval: eval echo '$PRO'$INDEX 但似乎您应该使用数组,而不是将索引嵌入变量名中。使用

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

export-PRO“$INDEX”=/some/fancy/dirry

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

echo$“PRO$索引”

我得到:

PRO1122

相反,我希望看到:

/some/fancy/dirry

与echo$PRO1122的结果非常相似

但是,我当然不能硬编码循环中的值
1122

使用
eval

eval echo '$PRO'$INDEX
但似乎您应该使用数组,而不是将索引嵌入变量名中。

使用
eval

eval echo '$PRO'$INDEX

但是看起来您应该使用数组,而不是将索引嵌入变量名中。

BASH已经有了变量引用机制

你可以做:

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

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

你可以做:

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

eval
应仅用于不支持某种形式间接参数扩展的shell(如POSIX
sh
,它也缺乏数组支持)。
eval
应仅用于不支持某种形式间接参数扩展的shell(如POSIX
sh
,它也缺乏数组支持)。