Standardein- und -ausgabe

Ein Programm hat in der Regel die Aufgabe in irgendeiner Form Daten zu verarbeiten. Das bedeutet, dass es Möglichkeiten geben muss, Daten zu lesen und die verarbeiteten Daten wieder wegzuschreiben. Dafür kann man Dateien zum Lesen und Schreiben öffnen, aber man kann sich die Daten auch von einem anderen Programm anliefern lassen und wieder von wieder einem anderen Programm abholen lassen.

Diese Philosophie ist in den Shell-Befehlen umgesetzt. Das bedeutet, dass es ein standardisiertes Interface geben muss, wie Daten an ein Programm geliefert werden können und wie sie wieder abgeholt werden können. Hierfür hat ein Programm üblicherweise grundsätzlich bereits Pseudodateien geöffnet, die als stdin (Standard-Input) und stdout bezeichnet werden. Es sind ganz einfach die ersten beiden Handles, die ein Programm geöffnet hat.

Die Standardfehlerausgabe

Jedes Shell-Programm hat ein drittes Handle erhalten, dass die Standardfehlerausgabe darstellt. Hierhin können Texte gesandt werden, wenn Fehler gemeldet werden müssen.

Verwendung von Standardein- und -ausgabe

Nun kann ein Shell-Befehl Daten verarbeiten, die an die Standardeingabe geliefert werden und die verarbeiteten Daten an die Standardausgabe liefern. Dieses Prinzip werden wir über die Pipe realisiert, bei der die Shell die Standardausgabe des linken Befehls mit der Standardeingabe des rechten Befehls verknüpft.