【问题标题】:how to set environment variable in linux using perl script [duplicate]如何使用perl脚本在linux中设置环境变量[重复]
【发布时间】: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


【解决方案1】:

为此使用%ENV

#!/usr/bin/perl

$ENV{'TEST_ENV'} = 'TEST123';

【讨论】:

  • 试过你的代码,但它也不起作用。
  • 你打算在哪里使用环境变量?在 Perl 脚本中?
  • 你在哪里尝试使用这个变量?
  • @Quentin 不在 perl 脚本中。我需要使用 perl 脚本在 linux 机器上添加一个新的系统环境变量。
  • @nairb 为什么你必须使用 perl?为什么不是 shell 脚本?
猜你喜欢
  • 2015-03-02
  • 2013-10-12
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多