2013-03-26 182 views
1

我有这样的事情:创建变量名称与变量

$CORSAIR_TYPE="good" 
$CASE="CORSAIR" 
... 
$local temp_type=${CASE}_TYPE 
echo ${!temp_type} 

这使我的变量CORSAIR_TYPE的价值,这是“好”。有没有办法做到这一点,而不创建temp_type变量?我将用什么替换echo ${!temp_type}

感谢

+1

是,'EVAL回声 '$' “$ {案例} _Type”'或类似的东西。 – 2013-03-26 12:40:09

+0

对于'$ {!foo}','foo'必须是一个变量。所以,不,至少在你提供的代码中,并不是真的。此外,我不会使用任何'eval'解决方案来避免创建一个临时变量。 – jedwards 2013-03-26 15:09:20

回答

0

对于任何人碰到这个岗位磕磕绊绊,这是一种方式,我发现这样做的:

echo $(eval echo $`echo ${CASE}_TYPE`) 
+1

所有你需要的是'eval'echo'$'$ {CASE}'_ TYPE“'' – William 2013-03-26 13:53:37