필자의 펄 스크립트에서 환경 변수를 내 펄 변수에 넣고 싶다. 나는이펄에서 변화하는 환경 변수를 얻는 방법
$no_of_lic = $ENV{`ON_OF_ENV`};
할 수 있지만 같은 쉘 스크립트에서 환경 변수 변경 후 업데이트 된 값을하지 않을 경우이 처음에만 노력하고 있습니다.
내 코드 : 스크립트가 backgorund에에서 실행되는
!/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);
}
동안 내가 이렇게되면 setenv $NO_OF_ENV 5
, 난 스크립트가 업데이트 된 값으로 인쇄 할 것을 기대하고있는 환경 변수를 변경합니다 as 5
그러나 그 일은 일어나지 않습니다. 아무도이 작업을 수행 할 수 있습니까?
프로그램은 시작할 때 환경에 제공됩니다. 부모 (또는 다른 프로세스)의 환경을 수정해도 하위 프로세스의 환경은 업데이트되지 않습니다. 프로그램과 통신 할 필요가 있다면, 파일을 사용하거나 (매번 루프에서 읽음) 또는 다른 IPC 메커니즘 (소켓, 데이터베이스 등)을 사용하는 것을 고려하십시오. –
@KyleBurton : 답변으로 게시하십시오. – Borodin
완료되었지만 이미 다른 답변이 있습니다 ... 감사합니다 @ 보로딘 –