2

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

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

现在我想使用 $var 打印 $ xyz 的值

4

1 回答 1

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
于 2013-11-15T09:35:31.637 回答