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 :(得分:0)
使用间接比eval安全得多:
#!/bin/bash
. $MYDIR/myProperties.properties # myTempVar1=myTempVar2
myTempVar=myTempVar1
myTempVar3=${!myTempVar}
echo $myTempVar3
给出:
myTempVar2
并且您不需要eval中的echo:
eval myTempVar3='$'$myTempVar