Mika: STDOUT und STDERR trennen

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?

  1. 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.

  2. 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

  3. ich habe in einem Per Script folgenden Befehl:

    @foundlinks = /bin/ls /home/otto;

    Warum verwendest du nicht einfach entsprechenden Perl Funktionen?

    Struppi.