我已经定义了一个变量:
bob_pants="fancy"
现在我想通过使用另一个变量来引用$bobs_pants
的内容。
name="bob"
item="pants"
我可以这样做:
echo "${name} has ${name}_${item} ${item}"
我希望上面的输出为"user bob has fancy pants"
到目前为止,我只是成功地获得了"user bob has bob_pants pants"
我想我需要某种方式让${name}_${item}
被视为${bob_pants}
,但我尝试将变量分组到一个方法的所有方法都没有用。
答案 0 :(得分:3)
在bash
:
bob_pants="fancy"
name="bob"
item="pants"
var="${name}_${item}"
echo "${name} has ${!var} ${item}"
${!var}
表示法计算为$var
命名的变量。但是,你做不到:
echo "${name} has ${!${name}_${item}} ${item}"
答案 1 :(得分:0)
结帐eval
:
$ x=bob
$ y=pants
$ echo $x\_$y
bob_pants
$ eval echo \$$x\_$y
fancy
$