我可以通过将变量连接在一起来引用现有的bash变量吗?

时间:2012-11-23 17:43:56

标签: bash variables

我已经定义了一个变量:

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},但我尝试将变量分组到一个方法的所有方法都没有用。

2 个答案:

答案 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
$