我试图使用一个环境variables指向一个文件,通过一个子程序运行它,并将其与variables关联。 我用Windowspipe理它,但我无法得到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被定义为一个环境variables(使用set确认)。 我究竟做错了什么?
在bash中, =
简单地创建一个shell变量。 这些不会自动导出到环境中。 你需要明确地做到这一点。
设置一个shell变量:
$ AA=hello
设置和导出另一个(在一个语句中):
$ export BB=there
开始一个新的过程:
$ bash
瞧! 只有导出的变量被新进程继承:
$ echo "[$AA] [$BB]" [] [there]
请注意 , set
不会设置变量。 set AA=hello
不会做什么Windows外壳。
好的,解决方案是我自己的愚蠢。 我使用下面的代码在.bashrc中设置变量:
APP_HOME=$HOME/APP/DATA/STORAGE; export FINE_DIR
RAPID_DIR无权在那里。 是复制/粘贴和监督不力的其余部分…将FINE_DIR更改为APP_HOME,并且都是好的。
谢谢所有的指导!