在我以Perl脚本执行的以下命令中,如何捕获stderr?Perl脚本捕获在反引号中执行的stderr和stdout命令
my $output = `ssh login.com git clone --bare [email protected]:/nfs/repo/ /nfs/repo//4124/`;
if ($? ne '0')
{
$stderr = $output;
print $stderr;
}
else
{
$stdout = $output;
print $stdout;
}
简单就是最好+1(除非他们真正需要被分开) – 2012-03-20 09:20:00
感谢,也可以将其重定向到文件还 – Rajeev 2012-03-20 09:25:41
@红眼:如果他们需要保持分开,那么你必须更加努力(或者,更可能的是,只要安装和使用适当的模块,其他人已经为你做了更难的工作)。但是,如果程序以零状态(成功)退出,并且如果程序以非零状态退出时所有标准错误(即使您处于非零状态),但所显示的脚本都希望将捕获的材料视为全部为标准输出即使在程序失败时也可以具有非错误输出,即使程序成功时也可以输出错误。这很好,很简单(除非你使用C shell)。 – 2012-03-20 09:25:44