使用eval将bash输出存储到变量中

时间:2013-08-12 11:00:41

标签: bash

我有一行代码

eval echo \$$var

打印一个字符串。如何将此字符串存储到变量中?

4 个答案:

答案 0 :(得分:23)

像这样:

eval c=\$$var

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

c=${!var}

答案 1 :(得分:16)

newVariable=$(eval echo \$$var)

答案 2 :(得分:0)

这可以通过使用反引号 - `

来实现
c=`$var

答案 3 :(得分:0)

您可以尝试:在bash上对我有用。

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

示例:如果HOME是包含/export/users/john之类的主目录的环境变量,则将变量嵌入另一个变量中,然后对该组合进行解压缩将如下所示:

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

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