从属性文件中动态获取动态变量的值

时间:2013-06-04 07:30:51

标签: variables unix

unix命令下面有效:

export myTempVar=myTempVar1
export myTempVar1=myTempVar2

eval echo '$'$myTempVar

这正确打印myTempVar2。

但是,如果myTempVar1=myTempVar2存在于属性文件中而不是直接存在于脚本中,那该怎么办?

所以我的脚本会有

. $MYDIR/myProperties.properties
myTempVar=myTempVar1
myTempVar3=eval echo '$'$myTempVar

上面的行不起作用,myTempVar3的值不是myTempVar2。

myProperties.properties有以下行:

myTempVar1=myTempVar2

1 个答案:

答案 0 :(得分:0)

使用间接比eval安全得多:

#!/bin/bash
. $MYDIR/myProperties.properties # myTempVar1=myTempVar2
myTempVar=myTempVar1
myTempVar3=${!myTempVar}
echo $myTempVar3

给出:

myTempVar2

并且您不需要eval中的echo:

eval myTempVar3='$'$myTempVar