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