1

我已经定义了一个变量说:

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}但我尝试将变量组合为一个的所有方式都没有奏效。

4

2 回答 2

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}"
于 2012-11-23T17:52:26.717 回答
0

签出eval

$ x=bob  
$ y=pants  
$ echo $x\_$y  
bob_pants  
$ eval echo \$$x\_$y  
fancy
$
于 2012-11-23T17:57:37.523 回答