【发布时间】:2014-10-31 18:15:44
【问题描述】:
我想将变量命名为a_${v}。
例如:v 可以是 2013 2014
我现在向a_${v}声明一个变量
a_${v}=hI # a_2013 should be Hi
v=2014
所以a_${v}=Hello # a_2014 应该是你好
我尝试使用 eval 命令,虽然它在赋值时没有抛出错误,但我无法提取变量名的值
$ v=2013
$ eval a_${v}=Hi
$ v=2014
$ eval a_${v}=Hello
echo ${a_${v}}
不工作.. :(
我正在使用 bash,我不想更改变量名,即不想将值分配给另一个值
【问题讨论】:
-
@Pumbaa80 您引用的问题(及其答案)是
bash特定的,对这个问题有一个可移植的、非 bash 特定的答案会很有用。 -
简单:删除最后一行,改为执行以下两行:
varname=$(echo "a_${v}")后跟echo ${!varname}。不客气:D我会添加这个作为答案,但它不会让我:/ -
这不是重复的!需要 /bin/sh 而不是 BASH 的答案,并且不使用 eval(如果可能)。没有一个链接的答案满足这一点。