【发布时间】:2015-03-04 17:35:41
【问题描述】:
如何使用 perl 脚本在 linux 中设置环境变量。
代码:
#!/usr/bin/perl
system ('export TEST_ENV=TEST123');
不工作。请帮忙
【问题讨论】:
-
每个进程都有自己的一组环境变量。子进程得到其父进程集合的副本,但它确实是副本,任何更改都不会反映在父进程中。您不能从另一个进程更改一个进程的环境变量。这就是为什么这不起作用。
-
您的脚本正在运行,并为由
system函数启动的new shell 正确设置了环境变量。当外壳完成时,它的生命周期就结束了。 (紧跟在export之后)。 -
system产生一个新的子进程,在这个子进程中改变环境是徒劳的。您只能使用%ENV(例如$ENV{'TEST_ENV'}='TEST123';)更改正在运行的 perl 进程的环境。您不能更改启动 perl 进程的 shell 的环境。这只能在壳本身。 -
感谢您的所有回答,但我现在设法解决了这个问题,并且仍然使用 perl 脚本:D
标签: perl