STDOUT und STDERR trennen
Mika
- perl
0 Fabian St.0 Siechfred1 Struppi
Hallo,
ich habe in einem Per Script folgenden Befehl:
@foundlinks = /bin/ls /home/otto
;
Das funktioniert auch wunderbar. Es wird das Verzeichnis /home/otto durchsucht. Wenn ich nun aber die Rechte 700 gebe, dann ist das ja unmöglich, es wird also ein STDERR "Permission denied" - oder so ähnlich geworfen.
Wie kann ich solche Fehler löschen und die STDOUT Ausgabe an @foundlinks lenken?
Hi!
@foundlinks =
/bin/ls /home/otto
;Das funktioniert auch wunderbar. Es wird das Verzeichnis /home/otto durchsucht. Wenn ich nun aber die Rechte 700 gebe, dann ist das ja unmöglich, es wird also ein STDERR "Permission denied" - oder so ähnlich geworfen.
Wie kann ich solche Fehler löschen und die STDOUT Ausgabe an @foundlinks lenken?
Ich kenne mich zwar mit Perl kaum aus, jedoch könntest du es mal mit »Output Redirection« versuchen. In deinem Falle soll STDERR (Standardfehlerausgabekanel ist zwei) also ins Nirvana (/dev/null) verschwinden und nur STDOUT der Variablen zugewiesen werden:
@foundlinks = /bin/ls /home/otto 2> /dev/null
Grüße,
Fabian St.
Tag Mika.
Wie kann ich solche Fehler löschen und die STDOUT Ausgabe an @foundlinks lenken?
Perldoc nennt verschiedene Wege, vielleicht trifft einer davon dein Problem:
http://perldoc.perl.org/perlfaq8.html#How-can-I-capture-STDERR-from-an-external-command%3F
Siechfred
ich habe in einem Per Script folgenden Befehl:
@foundlinks =
/bin/ls /home/otto
;
Warum verwendest du nicht einfach entsprechenden Perl Funktionen?
Struppi.