2013-06-04 54 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