我需要在Perl中设置一个环境变量.理想情况下,我需要查询变量,然后更改它,如果它不是所需的.具体来说,它是我想要改变的PATH变量.
如何获取和设置这些变量?
我试图LD_LIBRARY_PATH通过以下方式通过Perl脚本设置环境变量:
我创建了.profile下/root
.profile有一个export命令说:
export LD_LIBRARY_PATH=/
Run Code Online (Sandbox Code Playgroud)
我的Perl脚本是test.pl,它具有:
#!/usr/bin/perl
system(". /root/.profile");
Run Code Online (Sandbox Code Playgroud)
当我执行时./test.pl,LD_LIBRARY_PATH不会改变.
我究竟做错了什么?
我有两个Perl脚本以及GIT钩子脚本.在那里我正在验证GIT工作流程.这是调用堆栈的脚本.
pre-push - > unpush-changes - > dependency-tree
unpush-changes perl脚本中有一个for循环,它将调用dependency-tree perl脚本.
前推
system("unpushed-changes");
my $errorMsg = $ENV{'GIT_FLOW_ERROR_MSG'}// '';
if($errorMsg eq "true"){
print "Error occured!";
}
Run Code Online (Sandbox Code Playgroud)
unpush-changes.pl
for my $i (0 .. $#uniqueEffectedProjectsList) {
my $errorMsg = $ENV{'GIT_FLOW_ERROR_MSG'}// '';
if($errorMsg ne "true"){
my $r=system("dependency-tree $uniqueEffectedProjectsList[$i]");
}else{
exit 1;
}
}
Run Code Online (Sandbox Code Playgroud)
dependency-tree.pl
if(system("mvn clean compile -DskipTests")==0){
print "successfully build";
return 1;
}else{
$ENV{'GIT_FLOW_ERROR_MSG'} = 'true';
print "Error occured";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在我的依赖树脚本中,如果发生错误,我已经设置了ENV变量,并且将在unpush-changes脚本中的每次迭代中进行检查.但是它的ENV值为空而不是true.我也尝试返回一些值,如果失败并尝试验证它,但似乎它也没有工作.所以我的要求是我如何在所有脚本之间共享一个全局变量.如果有更好的方法,请告诉我.