使用Linux环境变量作为Perl脚本中的路径

时间:2014-06-05 16:37:18

标签: linux perl environment-variables

我正在尝试使用环境变量指向文件,通过子例程运行它并将其与变量相关联。我使用Windows管理它,但我无法使用Linux的语法..

这就是我所拥有的:

 my $config = read_config("$ENV{APP_HOME}/config/APP-linux.cfg");

我的脚本在到达此行时因错误而死亡:

    Use of uninitialized value $ENV{"APP_HOME"} in concatenation (.) or string at ./XXXXX.pl

APP_HOME被定义为环境变量(使用set确认)。我做错了什么?

2 个答案:

答案 0 :(得分:1)

在bash中,=只是创建一个shell变量。这些不会自动导出到环境中。你需要明确地做到这一点。

设置shell变量:

 $ AA=hello

设置并导出另一个(在单个语句中):

 $ export BB=there

开始新流程:

 $ bash

瞧!新进程只继承导出的变量:

 $ echo "[$AA] [$BB]"
 [] [there]

注意 set 设置变量。 set AA=hello不能执行Windows shell所做的事情。

答案 1 :(得分:0)

好的,解决方案是我自己的愚蠢。我使用:

在.bashrc中设置变量
APP_HOME=$HOME/APP/DATA/STORAGE; export FINE_DIR

RAPID_DIR无权在那里。是剩下的复制/粘贴和糟糕的疏忽......将FINE_DIR更改为APP_HOME,一切都很好。

谢谢你的所有指导!