如何从变量中回显变量

时间:2015-05-21 09:25:48

标签: shell unix echo

我想编写一个简单的脚本,我将变量的值指定为另一个变量。然后回应它。像这样的东西

abc=hi
hi=123
echo $abc
echo $hi
echo $(echo $abc)

对于第三个回声,我希望所需的输出为“123”但不会出现。

1 个答案:

答案 0 :(得分:1)

在bash中,您可以使用间接扩展:

$ abc=hi
$ hi=123
$ echo ${!abc}
123

在其他shell中,替代方法是使用eval

$ eval echo \$$abc
123

当然,这会带来与使用eval相关的所有风险,例如:

$ abc="hi; echo oops"    
$ eval echo \$$abc
123
oops

应尽可能避免盲目地将字符串作为命令进行评估。