perl系统调用不会调用ksh脚本

时间:2013-10-03 16:42:27

标签: perl system ksh

我正在尝试从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**

有任何解决此问题的提示吗?

1 个答案:

答案 0 :(得分:0)

这有帮助吗?

my @cmd = (
    "/path to script/lookupCal.ksh",
    "--service", 2,
    "-i", "/auto/dataprod/MSUkeyDates",
    "-f", "/auto/dataprod/HoursOfOpData",
    "--timezone", "America/New_York"
);
system @cmd;