Anzeige:
Ergebnis 1 bis 1 von 1

Thema: [Shellscripting] Dateidescriptoren tauschen

  1. #1
    Universaldilletant Avatar von fork
    Registriert seit
    Dec 2001
    Ort
    Frankfurt/Main
    Beiträge
    1.175

    Lightbulb [Shellscripting] Dateidescriptoren tauschen

    Worum gehts?

    Manchmal möchte man auch mal die Daten von STDERR verarbeiten. Gerade möchte ich zum Beispiel meine Fehlermeldung die auf STDERR rauskommen mit einem Zeitstempel versehen.

    Sämtliche Befehle arbeiten aber nur mit den Daten von STDOUT.

    Wie kann man das also machen?

    Es wird einfach zeitweise STDERR und STDOUT vertauscht. Nach der Verarbeitung werden die Kanäle wieder zurück getauscht.

    Umsetzung

    Einfacherweise verwende ich im ersten Schritt jetzt keinen Zeitstempel, sondern nur eine einfache Zeilennummerierung.

    BEFEHL-1 3>&1 >&2 2>&3 |
    nl 3>&1 >&2 2>&3
    Wie funktioniert das genau?

    BEFEHL-1 legt einen neuen Dateideskriptor("3") an der auf dasselbe Ziel wie STDOUT zeigt. Danach wird STDOUT mit dem Wert von dem Ziel des Dateideskriptors STDERR überschrieben. Anschliessend wird STDERR mit dem Wert von Dateideskriptor 3 überschrieben. Die Werte sind also jetzt vertauscht. Anschliessend werden STDOUT und STDERR durch die Pipe an den nächsten Befehl übergeben und dieser bearbeitet nun gemäß Spezifikation STDOUT. Dateideskriptor 3 wird nicht übergeben. Anschliessend werden die Deskriptoren wieder zurückgetauscht, so das die ursprünglichen STDOUT-Daten auch wieder auf STDOUT geschrieben werden, vielleicht für einen weiteren Befehl.

    Zeitstempelbeispiel

    BEFEHL-1 3>&1 >&2 2>&3 |
    (
    while read line
    do
    echo "$(date): $line"
    done
    ) 3>&1 >&2 2>&3 |
    BEFEHL-2
    ...oder mit den Hilfsprogrammen von DJB's Daemontools:

    BEFEHL-1 3>&1 >&2 2>&3 |
    tai64n | tai64nlocal 3>&1 >&2 2>&3 |
    BEFEHL-2
    Geändert von fork (01.11.07 um 19:00 Uhr)

Ähnliche Themen

  1. Ati Karte gegen Nvidia tauschen?
    Von Lammy im Forum stationäre Hardware
    Antworten: 23
    Letzter Beitrag: 18.02.07, 22:38
  2. Openoffice - Startlogo tauschen?
    Von muell200 im Forum Linux Allgemein
    Antworten: 5
    Letzter Beitrag: 28.10.06, 12:18
  3. netzwerkkarten (suse10) tauschen
    Von siegpes im Forum stationäre Hardware
    Antworten: 1
    Letzter Beitrag: 11.02.06, 10:40
  4. Wer will TV-Karte tauschen? PCI <-> USB
    Von da\/id im Forum Meldungen und Mitglieder
    Antworten: 0
    Letzter Beitrag: 26.10.05, 10:00
  5. Farben tauschen mit Imagemagick
    Von iGEL im Forum Anwendungen Allgemein, Software
    Antworten: 1
    Letzter Beitrag: 26.03.05, 19:10

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •