在终端中,我可以访问变量$LINES
:
$ echo $LINES
39
像这样运行Perl脚本:
#!/usr/bin/env perl
use strict; use warnings;
my $cmd = q|echo $LINES|;
my $lines = `$cmd`;
print "lines: $lines\n";
给出输出:lines:
。我也尝试访问%ENV
,但是它不包含此特定密钥。
如何从Perl脚本访问外壳变量$LINES
?
答案 0 :(得分:4)
来自bash manual:
在调用程序时,会给它一个字符串数组,称为 环境。 [...] shell提供了几种方法来操纵 环境。在调用时,shell扫描其自身的环境,然后 为找到的每个名称创建一个参数,并自动将其标记为 导出到子进程。 已执行的命令会继承环境。
export
和declare -x
命令允许参数和函数 添加到环境中或从环境中删除。
因此(假设是Bash shell)使用:
export LINES
将使Shell的Perl脚本startet中的变量$LINES
可用(使用Perl脚本中的$ENV{LINES}
)。