我在Ubuntu 11.04上使用Perl 5.10.1。我希望Perl执行shell脚本并以与shell脚本退出相同的代码退出。但这对我不起作用...
system($runCmd) or die("Failed to run \"$runCmd\": $!");
我已经确认,运行“ $ runCmd”本身会返回255的退出代码,但不会调用“ die”子句。如何以正确的代码退出,或者至少对于不成功的代码失败?
另一个较小的要求是,我希望将$ runCmd的输出打印到屏幕上。
最佳答案
正如perldoc -f die
所说,die
没有给出特定的退出代码(仅提供非零退出代码)。要获得想要的东西,您需要类似以下内容的东西:
my $exit_code=system($runCmd);
if($exit_code!=0)
{
print "Command $runCmd failed with an exit code of $exit_code.\n";
exit($exit_code >> 8);
}
else
{
print "Command $runCmd successful!\n";
}
关于perl - 让Perl返回正确的退出代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7080434/