我们需要获得动态构造变量的值。
我的意思是我们从名为data8967677878788node
的属性文件中加载了一个变量。因此,当我们运行echo $data8967677878788node
时,我们得到输出test
。
现在data8967677878788node
数字部分8967677878788
需要是动态的。这意味着可能存在像
data1234node
data346346367node
等。
该数字是脚本的输入参数。所以我们需要这样的工作
TESTVAR="data`echo $DATANUMBER`node"
echo $$TESTVAR #This line gives the value "test"
关于如何实现这一点的任何想法
答案 0 :(得分:4)
您可以使用BASH的间接变量扩展:
data346346367node='test'
myfunc() {
datanumber="$1"
var1="data${datanumber}node"
echo "${!var1}"
}
并将其命名为:
myfunc 346346367
<强>输出:强>
test
答案 1 :(得分:0)
您的代码实际上已经非常接近工作,只需要稍微修改一下:
TESTVAR="data`echo $DATANUMBER`node"
echo ${!TESTVAR}
如果$DATANUMBER
的值为12345
且$data12345node
的值为test
,则上述代码段将输出test
。