Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 我们可以将Perl脚本中使用的变量设置为环境变量吗?_Linux_Perl_Bash_Unix - Fatal编程技术网

Linux 我们可以将Perl脚本中使用的变量设置为环境变量吗?

Linux 我们可以将Perl脚本中使用的变量设置为环境变量吗?,linux,perl,bash,unix,Linux,Perl,Bash,Unix,我有一个Perl脚本,它有一个类似于my$name的变量。我们能否将$name的内容设置为一个环境变量,以便在其他文件中导入和使用 我尝试使用$ENV{NAME}=NAME,但这不起作用。如果要影响进程或子进程的环境,只需使用%ENV哈希: $ENV{CVSROOT}='<cvs>'; 环境变量是特定于流程的。生成子进程时,它将继承其父进程环境变量的副本,但对它们所做的任何更改仅限于其自身以及更改后生成的任何子进程 因此,不能从运行的脚本中为shell设置环境变量。是否要在其他文件

我有一个Perl脚本,它有一个类似于
my$name
的变量。我们能否将$name的内容设置为一个环境变量,以便在其他文件中导入和使用


我尝试使用
$ENV{NAME}=NAME
,但这不起作用。

如果要影响进程或子进程的环境,只需使用
%ENV
哈希:

$ENV{CVSROOT}='<cvs>';

环境变量是特定于流程的。生成子进程时,它将继承其父进程环境变量的副本,但对它们所做的任何更改仅限于其自身以及更改后生成的任何子进程


因此,不能从运行的脚本中为shell设置环境变量。

是否要在其他文件中使用
$name
的值?或者您想将env var的值设置为
$name
?我想设置新的环境变量,如x,其值应该等于$name,如果是这样的话
$env{name}=name
应该可以工作,除了在perl中引用var
name
。查看sarathi回复以了解更多信息。
#!/usr/bin/perl -w
print 'export CVSROOT=<cvs>';
eval `myscript.pl`