2013-06-04 53 views
0

下面的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 

回答

0

使用间接远比EVAL安全:

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

给出:

myTempVar2 

,你不需要回声在评估:

eval myTempVar3='$'$myTempVar