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 に答える