在我的perl脚本中,我想要获取我的perl变量的环境变量。我能做到这一点我怎样才能获得变化的环境变量perl
$no_of_lic = $ENV{`ON_OF_ENV`};
但这是首次只工作,如果在同一个shell脚本环境变量的变化,那么它不会采取更新的价值。
我的代码:
!/usr/local/bin/perl -w
$no_of_lic = $ARGV[0];
$ENV{'NO_OF_LIC'} = $no_of_lic;
print "No of lic to be picked : $no_of_lic\n";
print "Environment var : $ENV{NO_OF_LIC}\n";
sleep(1);
while ($no_of_lic != 0) {
sleep(1);
print "no of lic : $no_of_lic\n";
#$no_of_lic = $ENV{'NO_OF_LIC'};
sleep(10);
}
在脚本中backgorund运行我会改变环境变量 setenv $NO_OF_ENV 5
一旦我这样做,我期待脚本将使用更新的值打印作为5
但它没有发生..可以任何一个告诉如何做到这一点?
程序在开始时给予它们的环境。修改父级(或任何其他进程)中的环境不会更新子进程的环境。如果您需要与程序进行通信,请考虑使用文件(每次在循环中读取它)或其他IPC机制(套接字,数据库等)。 –
@KyleBurton:请把它作为答案。 – Borodin
完成,但已有其他答案...谢谢@Borodin –