2

別の変数 $env として値を持つ変数 $var があります。$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 に答える