我需要在perl脚本中访问shell变量的值。如果它是环境变量而不是常规的ole shell变量,我可以得到它。考虑
% set AAA=Avalue
% setenv BBB=Bvalue
% echo $AAA
Avalue
% echo $BBB
Bvalue
到目前为止,这么好。现在,这是一个perl脚本来阅读它们......
#!/usr/bin/env perl
use strict;
print "AAA: ".$ENV{AAA}."\n";
print "BBB: ".$ENV{BBB}."\n";
exit;
当我跑步时,我得到......
AAA:
BBB: Bvalue
如何从perl脚本中获取AAA的值?
先谢谢
答案 0 :(得分:3)
您没有获得AAA变量的值,因为AAA是本地env变量,其中BBB是导出变量。
导出的变量被导入到导出它们的shell启动的进程环境中,而非导出的变量只是当前进程的本地变量。
示例:
$ set AAA=123
$ csh
$ echo $AAA
AAA: Undefined variable.
$ exit
$ setenv BBB 456
$ csh
$ echo $BBB
456
答案 1 :(得分:1)
进程无法访问其他进程的内存,更不用说它的变量了。如果您希望Perl脚本具有值,则需要以某种方式将值传递给它(例如,通过其环境)。