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
4

1 回答 1

0

使用间接比 eval 安全得多:

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

给出:

myTempVar2

而且你不需要eval中的回声:

eval myTempVar3='$'$myTempVar
于 2013-06-04T07:43:24.503 回答