1

我正在尝试从我的 PERL 脚本中调用 ksh 脚本,但无法这样做。

这是我的命令

$cmdString = “/path to script/lookupCal.ksh --service 2 -i /auto/dataprod/MSUkeyDates -f /auto/dataprod/HoursOfOpData --timezone America/New_York”
system($cmdString)

我所做的只是发送一个 Msymbolukeys 的输入文件,以获取一个输出文件,其中包含它们的运行时间(在 ksh 脚本运行后将在 HoursOfOpData 中),我稍后在我的 PERL 代码中阅读了该文件。

当我从命令行运行它时,它按预期工作,但来自我的 PERL 脚本的调用似乎没有调用 ksh 脚本。

我尝试添加一些调试语句

if(system($cmdTmpstr) != 0)
{
if ($? == -1) {
    print "failed to execute: $!\n";
}
elsif ($? & 127) {
    printf "child died with signal %d, %s coredump\n",
        ($? & 127),  ($? & 128) ? 'with' : 'without';
}
else {
    printf "child exited with value %d\n", $? >> 8;
}
}

这是我从日志中得到的输出

**child died with signal 11, without coredump**

有什么提示可以解决这个问题吗?

4

1 回答 1

0

这有帮助吗?

my @cmd = (
    "/path to script/lookupCal.ksh",
    "--service", 2,
    "-i", "/auto/dataprod/MSUkeyDates",
    "-f", "/auto/dataprod/HoursOfOpData",
    "--timezone", "America/New_York"
);
system @cmd;
于 2013-10-03T17:51:08.690 回答