我有这个命令,我加载(example.sh)在unix命令行中运行良好.
但是,如果我使用system或`语法在Perl中执行它,它就不起作用.我猜测某些设置,如环境变量和其他外部sh文件未加载.
是否有一个示例编码以确保它可以工作?
有关编码执行失败的更多更新(我一直尝试使用不同的代码):
push (@JOBSTORUN, "cd $a/$b/$c/$d; loadproject cats; sleep 60;");
...
my $pm = new Parallel::ForkManager(3);
foreach my $job (@JOBSTORUN) {
$pm->start and next;
print(`$job`);
$pm->finish;
}
print "\n\n[DONE] FINISHED EXECUTING JOBS\n";
Run Code Online (Sandbox Code Playgroud)
输出消息:
sh: loadproject: command not found
Run Code Online (Sandbox Code Playgroud)
你能告诉我们你到目前为止所尝试的内容吗?你是如何运行这个程序的?
如果您从登录shell运行它,我的第一个怀疑将不是环境.你启动的任何Perl脚本(好吧,任何程序,真的)都继承了相同的环境.但是,如果您通过cron运行该程序,那么这是一个不同的故事.
我通常在这些情况下犯的其他错误是错误地指定相对路径.命令行中的路径很好,但我的Perl脚本有一些其他当前工作目录.
有关一般建议,请参阅Perl不够时与系统交互.学习Perl还有一章关于此.
鉴于您与我们分享的信息非常有限,这是您可以期待的最佳建议.
| 归档时间: |
|
| 查看次数: |
226 次 |
| 最近记录: |