我想编写一个简单的脚本,我将变量的值指定为另一个变量。然后回应它。像这样的东西
abc=hi
hi=123
echo $abc
echo $hi
echo $(echo $abc)
对于第三个回声,我希望所需的输出为“123”但不会出现。
答案 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
应尽可能避免盲目地将字符串作为命令进行评估。