別の変数 $env として値を持つ変数 $var があります。$env には何らかの値があります。$var を使用して $env の値を出力するにはどうすればよいですか。
> set xyz = 'abc' set env = 'xyz' set v = '$' set var = "$v""$env"
>
> echo $var o/p: $xyz
$var を使用して $xyz の値を出力したい
別の変数 $env として値を持つ変数 $var があります。$env には何らかの値があります。$var を使用して $env の値を出力するにはどうすればよいですか。
> set xyz = 'abc' set env = 'xyz' set v = '$' set var = "$v""$env"
>
> echo $var o/p: $xyz
$var を使用して $xyz の値を出力したい
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