Perl +如何从系统中读取导出的变量(Linux)

时间:2015-06-25 11:47:50

标签: linux bash perl export

我的Linux机器中的 FT_DIR 导出变量是“:

# env | grep FT_DIR
FT_DIR=/opt/facebookDir2

echo $FT_DIR
/opt/facebookDir2

从shell脚本示例中读取FT_DIR导出变量很简单:

# more test.ksh 
#!/bin/ksh


echo $FT_DIR

运行脚本:

./test.ksh 
/opt/facebookDir2

但是在Perl中,故事是不同的

more test.pl 

#!/usr/bin/perl -w

my $FT_DIR = ` bash -c 'echo $FT_DIR' `  ;

print $FT_DIR;

运行脚本:

./test.pl
 Name "main::FT_DIR" used only once: possible typo at ./test.pl line 3.
 Use of uninitialized value in concatenation (.) or string at ./test.pl line 3.

为什么Perl脚本中的 FT_DIR 不是/ opt / facebookDir2值

如何在Perl中读取导出的变量FT_DIR? ,需要在我的Perl脚本中修复什么

1 个答案:

答案 0 :(得分:1)

没有必要调用bash来获取环境变量,perl能够自行完成。

只需使用:

my $FT_DIR = $ENV{FT_DIR};