perl - 让Perl返回正确的退出代码

标签 perl

我在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/

相关文章:

perl - 使用DBIX::Class时驼鹿触发器不触发

regex - 将 Perl 正则表达式操作的结果分配给第二个变量

perl - 如何使用 Perl 的系统调用来生成独立线程?

perl - stdin 上的 socat 阻塞

regex - while() 中的全局正则表达式匹配反引号结果

perl - 如何在 Perl 中迭代/取消引用子例程引用数组?

perl - 在 Perl 中,如何通过菱形运算符对命令行上指定的所有文件进行两次传递?

Perl:将 zip 作为 Base64 编码附件发送会损坏存档

arrays - 使用数组元素 perl 在文件中搜索字符串

perl - Perl 如何解析未引用的裸词?