我有这样的外壳脚本,
#!/bin/bash
foxy1="foxyserver"
H="1"输出应该是foxyserver。
我试过这个,
echo $foxy$H这给了我
1然后我用了
str="foxy$H"
echo $str输出是
foxy1我怎么能这么做?
发布于 2013-05-31 03:25:41
使用indirect variables, as described in BashFAQ #6
$ foxy1="foxyserver"
$ H="1"
$ varname="foxy$H"
$ echo "${!varname}"
foxyserver发布于 2013-05-31 03:24:13
使用eval,您可以进行间接操作:
eval echo \$$str输出
foxyserver警告:这并不是很好的做法。例如,如果您有str=(rm -rf ~/*),那么eval表达式将是$(rm -rf ~/*)。因此,请按查尔斯·达菲的建议,警告并使用间接。
https://stackoverflow.com/questions/16849235
复制相似问题