如何在Shell中扩展变量中的变量

时间:2014-04-18 05:56:15

标签: linux bash shell

我遇到了一个问题,我需要在另一个变量中扩展变量,如下所示:

var1=abc
var2=$var1/pqr
echo ${!var2}

这里我希望输出为abc / pqr,但没有得到它,请帮忙。 和var2的值只是这样,我不能用双引号。

3 个答案:

答案 0 :(得分:1)

在这种情况下,您不需要取消引用:

$ var1=abc
$ var2=$var1/pqr
$ echo $var2
abc/pqr

当您将变量指定为没有$符号的值时,您将取消引用。例如:

$ var1=abc/pqr
$ var2=var1
$ echo ${!var2}
abc/pqr

答案 1 :(得分:1)

只需删除!

var1=abc
var2=$var1/pqr
echo ${var2}

注意上面没有必要使用花括号,但它们也不会受伤。

答案 2 :(得分:1)

>> a="abcd"
>> b='$a/xyz'
>> eval c="$b"

>> echo $b
   $a/xyz
>> echo $c
   abcd/xyz