2009-08-25 6 views
1

J'ai un script pour vérifier si des données sont disponibles sur le chemin svn repo mais pas ajoutées dans svn. Cela fonctionne bien pour moi mais cela donne stderr pour ajouter et envoyer des fichiers comme ci-dessous;Comment rediriger les stderrs SVN vers/dev/null en utilisant perl

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

code:

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'"); 

Quelqu'un peut-il s'il vous plaît me suggérer comment puis-je rediriger cette erreur dans le script/dev/null.

+0

Il y a habituellement (et dans ce cas) pas besoin de '' et dans un sous appel. Utilisez 'notAdded()'. Voir 'perldoc perlsub'. –

Répondre

4

La façon normale de cacher la sortie non désirée avec SVN est d'utiliser la -q (calme) Drapeau:

svn -q add nothere 

affiche rien.

1

Ou la façon très simple:

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

Pourquoi les downvotes? Ma suggestion fonctionne pour toutes les commandes que vous utilisez en utilisant svn ou autre chose. –

Questions connexes