如何从Perl脚本访问shell变量?

时间:2020-01-14 12:56:24

标签: shell perl environment-variables

在终端中,我可以访问变量$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

1 个答案:

答案 0 :(得分:4)

来自bash manual

在调用程序时,会给它一个字符串数组,称为 环境。 [...] shell提供了几种方法来操纵 环境。在调用时,shell扫描其自身的环境,然后 为找到的每个名称创建一个参数,并自动将其标记为 导出到子进程。 已执行的命令会继承环境。 export declare -x命令允许参数和函数 添加到环境中或从环境中删除。

因此(假设是Bash shell)使用:

export LINES

将使Shell的Perl脚本startet中的变量$LINES可用(使用Perl脚本中的$ENV{LINES})。