2009-08-25 8 views
1

svn repoパスでは利用可能なデータがあるがsvnには追加されていないかどうかをチェックするスクリプトがあります。それは私のためにうまく動作しますが、これは以下のようなファイルの追加と送信のための標準エラーを提供します。perlを使ってSVN stderrsを/ dev/nullにリダイレクトする方法

Adding   1/a 
Sending  1/a 
Transmitting file data ........... 
Committed revision 529. 

コード:

use strict; 
use warnings; 

sub notAdded { 
     my @svnstatus = `svn st`; 
     foreach my $status (@svnstatus) { 
       chomp($status); 
       if ($status =~ m/^?/) { 
         my ($symble, $left) = split(' ', $status); 
         system("svn add $left"); 
       } 
     } 
} 

&notAdded(); 
system("svn commit -m 'comment'"); 

誰もが、私はスクリプト内では/ dev/nullに、このエラーをリダイレクトすることができますどのように私を提案してくださいすることができます。

svn -q add nothere 

表示何:

+0

通常(この場合は)あり '&'におけるサブ呼び出しの必要はありません。 'notAdded()'を使ってください。 'perldoc perlsub'を参照してください。 –

答えて

4

SVNとの望ましくない出力を非表示にする通常の方法は、-q(クワイエット)フラグを使用することです。

1

それとも本当に簡単な方法:

system("svn add $left 2>/dev/null"); 
+0

なぜdownvotes?私の提案は、あなたがsvnか何か他のものかどうかにかかわらず、システムを使って実行しているすべてのコマンドに対して機能します。 –

関連する問題