我正在尝试使用一个环境变量来指向一个文件,通过一个子例程运行它并将它与一个变量相关联。我用 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 确认)。我做错了什么?
最佳答案
在 bash 中,=
只是创建一个 shell 变量。这些不会自动导出到环境中。您需要明确地这样做。
设置一个shell变量:
$ AA=hello
设置并导出另一个(在一条语句中):
$ export BB=there
开始一个新进程:
$ bash
瞧!只有导出的变量被新进程继承:
$ echo "[$AA] [$BB]"
[] [there]
注意 set
不设置变量。 set AA=hello
不执行 Windows shell 执行的操作。
关于linux - 在 Perl 脚本中使用 Linux 环境变量作为路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24065637/