27

I have a line of code

eval echo \$$var

which prints a string. How can I store this string into a variable?

4

4 回答 4

36

像这样:

eval c=\$$var

更好、更安全的方法是使用间接:

c=${!var}
于 2013-08-12T11:04:47.760 回答
22
newVariable=$(eval echo \$$var)
于 2013-08-12T11:05:54.657 回答
2

你可以试试这个:它在 bash 上对我有用。

c=$(eval echo \${$var})

示例:如果HOME是包含您的主目录的环境变量/export/users/john,则将变量嵌入到另一个变量中,然后解压缩该组合将像这样工作:

var=HOME
c=$(eval echo \${$var})
echo $c
/export/users/john

虽然这可能看起来不必要地令人费解,但它在某些情况下会很有用。

于 2020-09-25T04:58:46.470 回答
2

这可以通过使用反引号语法来实现:` `

c=`$var`
于 2018-03-05T21:13:26.743 回答