如何在CSH中取消引用变量

时间:2013-11-15 09:26:19

标签: shell variables interpolation csh tcsh

我有一个变量$ var,其值为另一个变量$ env。 $ env有一些价值。如何使用$ var打印$ env。

的值
> set xyz = 'abc' set env = 'xyz' set v = '$' set var = "$v""$env"
> 
> echo $var    o/p: $xyz

现在我想使用$ var

打印$ xyz的值

1 个答案:

答案 0 :(得分:3)

使用eval,如下所示:

set xyz='abc'
set var='xyz'
eval echo \$$var

这通常称为间接引用


以下是一个示例脚本:

set var = 'xyz'
set xyz = 'abc'
if ( $?var ) then
    echo '$var is set to '"$var"
endif
if ( $?xyz ) then
    echo '$xyz is set to '"$xyz"
endif
if ( `eval echo \$\?$var` ) then
    echo '$$var is set to '`eval echo \$$var`
endif

输出:

> csh test
$var is set to xyz
$xyz is set to abc
$$var is set to abc