Linux 如何在Shell中展开变量中的变量
我遇到一个问题,需要在另一个变量中展开一个变量,如下所示:Linux 如何在Shell中展开变量中的变量,linux,bash,shell,Linux,Bash,Shell,我遇到一个问题,需要在另一个变量中展开一个变量,如下所示: var1=abc var2=$var1/pqr echo ${!var2} 这里我希望输出是abc/pqr,但没有得到它,请帮助。 var2值只是这样,我不能用双引号括起来。在这种情况下,您不需要取消引用: $ var1=abc $ var2=$var1/pqr $ echo $var2 abc/pqr 将变量指定为不带$符号的值时,可以取消引用。例如: $ var1=abc/pqr $ var2=var1 $ echo ${!va
var1=abc
var2=$var1/pqr
echo ${!var2}
这里我希望输出是abc/pqr,但没有得到它,请帮助。
var2值只是这样,我不能用双引号括起来。在这种情况下,您不需要取消引用:
$ var1=abc
$ var2=$var1/pqr
$ echo $var2
abc/pqr
将变量指定为不带$
符号的值时,可以取消引用。例如:
$ var1=abc/pqr
$ var2=var1
$ echo ${!var2}
abc/pqr
只需删除
代码>
var1=abc
var2=$var1/pqr
echo ${var2}
请注意,上面的花括号不是必需的,但它们也没有坏处。这里我得到的输出如下:echo$var2:o/p$var1/pqrI我没有使用任何类型的引号。eval
这里肯定没有指出。即使在这样小的例子中,教人们正确使用引号也是一个好主意。
>> a="abcd"
>> b='$a/xyz'
>> eval c="$b"
>> echo $b
$a/xyz
>> echo $c
abcd/xyz