wendzel.de

Postings in "Einsteiger-Blog":


Neuigkeiten für Linux-Users-Welcome
Mail/NNTP/RSS/Adressen-Synchronisierung mit Thunderbird und Unison unter Linux (Ubuntu)
Grundlegendes zur Linux-Sicherheit für Otto Normalverbraucher
Wie Sylpheed seine Versionsnummer auf Aktualität prüft
In welchem Geschäft kann ich Hardware kaufen, die unter Linux läuft?
Slackware jetzt auch offiziell für 64-Bit-Systeme
Schwedische/Spanische Sonderzeichen unter Linux
Shellskript Programmierung - Teil 7 (Variablen mit der Tastatur einlesen)
Slackware vs Ubuntu
Wer braucht schon Datenschutz im Web?
Warum in PHP programmieren?
Vorteile freier Software am Beispiel von Linux
Fortify gibt Studie zur Sicherheit von OpenSource-Software frei
PHP Registrierungen
C++-Code in HTML darstellen
Das n-Damen-Problem
PHP Includes absichern
Shellskript Programmierung - Teil 6 (Kommandosubstitution)
(void) printf(...) vs. printf(...)
Shellskript Programmierung - Teil 5 (Pipes/Ausgabeumlenkung)
Shellskript Programmierung - Teil 4 (Variablen)
Shellskript Programmierung - Teil 3 (Shells wechseln)
Shellskript Programmierung - Teil 2 (Welche Shells gibt es?)
Shellskript Programmierung - Teil 1 (Einführung)
In welcher Programmiersprache wurde Linux geschrieben?
Ordentliche Buchführung
C: [] ist kommutativ!


RSS Feed

 
Shellskript Programmierung - Teil 5 (Pipes/Ausgabeumlenkung)

-

Autor/Author: Steffen Wendzel Dipl.-Inform. (FH) Steffen Wendzel (Date/Datum: 080218-20:37, Hits: 2077)

Ein in all unseren Linuxbüchern ausführlichst behandeltes Thema sind so genannte Pipes. Pipes sind eine äußerst einfache Form der Kommunikation zwischen Prozessen. Man bezeichnet dies auch als Inter-Process-Communication (IPC). Hier eine kleine Einführung, denn Pipes sind in der grundlegenden Anwendung eigenltich ganz einfach zu verwenden und gleichzeitig äußerst nützlich.

Funktionsweise

Eine Pipe dient dazu die Ausgabe eines Programms aufzunehmen und an ein anderes Programm weiterzuleiten. Gibt ein Programm 'A' eine Zahl aus, so wird diese an Programm 'B' als Eingabe weitergereicht.

Schreibweise

Man schreibt eine Pipe mit dem |-Zeichen, dass sich auf deutschen Tastaturen meist neben der 'Y'-Taste befindet. Zusammengedrückt mit der Taste 'ALT' erscheint das Zeichen auf dem Bildschirm.

Die Anwendung schreibt sich nun folgendermaßen:
$ Programm1 | Programm2
Dabei wird die Ausgabe des ersten als Eingabe des zweiten Programms verwendet.

Beispiel Hier nun ein Beispiel: Es soll die Ausgabe von 'ls' an das Programm 'grep' weitergeleitet werden, dass die Eingabe nach bestimten Ausdrücken untersucht und diese herausfiltert.

Wir möchten nun alle Dateien sehen, die ein 'a' beinhalten:

$ ls | grep a
...


'ls' gibt die Dateiliste aus und 'grep' sucht alle Zeilen mit einem 'a' heraus. Wie gesagt: Die Verwendung von Pipes ist kinderleicht.

Ausgabeumlenkung

Normalerweise wird nur die Standardausgabe in eine Pipe geleitet, möchte man nun aber die Fehlerausgabe ebenfalls in eine Pipe leiten, so empfiehlt sich eine Ausgabeumlenkung.

$ ls /datei-existiert-nicht 2>&1 | grep a


Hier würde grep auch die Fehlermeldung der nicht existierenden Datei als Eingabe geliefert bekommen. Die Schreibweise 2>&1 heißt in diesem Fall, dass die Standardfehlerausgabe (Deskriptor 2) in die Standardausgabe (Deskriptor 1) eingehängt werden soll.

Weiteres

In unserem Buch 'Linux. Das distributionsunabhängige Handbuch' gehen übrigens noch auf die Systemprogrammierung (in C) mit Pipes ein. Und zwar im Kapitel zum Thema 'Prozesse und IPC' (ich tippe mal auf Seite 700-900, was ich im Moment nicht überprüfen kann, da ich im Rechenzentrum der Hochschule sitze).
____________
Tags: Programming | Shell |
Bookmark and Share


____

Kommentar verfassen / Post a comment:

Name:
Enter this Security Code:


 
Current Books


Einstieg in Linux



Linux. Das umfassende Handbuch