我需要访问 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 的值?
提前致谢
最佳答案
您没有获得 AAA 变量的值,因为 AAA 是本地环境变量,而 BBB 是导出变量。
导出的变量被导出到由导出它们的 shell 启动的进程的环境中,而非导出的变量仅是当前进程的本地变量。
示例:
$ set AAA=123
$ csh
$ echo $AAA
AAA: Undefined variable.
$ exit
$ setenv BBB 456
$ csh
$ echo $BBB
456
关于perl - 无法访问 perl 脚本中的 shell 变量,除非它是环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48652592/