我目前正在测试在cshell(company default if you were wondering)中运行的perl脚本,该脚本将由Jenkins作业使用。作为该脚本的一部分,我正在检查路径中是否存在gradle。
我将gradle目录添加到路径,然后保存路径的本地版本,如下所示:
$ENV{PATH} .= ":/vobs/common/gradle-X.X/bin";
my $myPATH = $ENV{ "PATH" };
然后我用which命令内的system命令进行健全性检查,如下所示:
system ("/bin/env PATH=$myPath which gradle" );
错误返回状态,表明我正确添加了路径,但由于某种原因,它无法在其中找到gradle,如下所示:
which: no gradle in (<standard directories>:/vobs/common/gradle-X.X/bin)
注意:我提到cshell的另一个主要原因是,这两个问题不不适用于我的问题,因为它们与bash有关:
Why 'whereis' and 'which' don't show me location of command?
How do I clear Bash's cache of paths to executables?
尽管知道路径中存在/ bin目录,为什么“哪个”命令会丢失命令?
答案 0 :(得分:1)
您的脚本可能没有足够的权限来访问/vobs/common/gradle-X.X/bin
。