In unserer vorherigen Lektion haben wir gelernt, wie man den Standardausgabe-Stream (stdout) umleitet. Ähnlich können wir auch den Standardeingabe-Stream (stdin) verwalten. Standardmäßig empfängt ein Programm seine stdin von der Tastatur, aber wir können auch Dateien oder die Ausgabe anderer Prozesse als Eingabequelle verwenden.
Verständnis von stdin und stdout
Jeder Kommandozeilenprozess unter Linux arbeitet mit mindestens zwei grundlegenden Datenströmen: Standardeingabe (stdin) und Standardausgabe (stdout). Ein Programm liest Daten von stdin und schreibt seine Ergebnisse nach stdout. Das Verständnis, wie man sowohl stdin als auch stdout steuert, ist entscheidend für effektives Arbeiten in der Kommandozeile.
Wie man stdin umleitet
So wie wir > für die stdout-Umleitung verwenden, nutzen wir den Operator < zur Umleitung von stdin. Diese leistungsstarke Funktion ermöglicht es Ihnen, einem Befehl mitzuteilen, seine Eingabe aus einer Datei zu lesen, anstatt darauf zu warten, dass Sie sie auf der Tastatur eingeben. Dies ist ein Kernkonzept der Eingabeumleitung.
Praktisches Beispiel mit cat stdin
Betrachten wir erneut die Datei peanuts.txt aus der vorherigen Lektion, die den Text "Hello World" enthält. Betrachten Sie den folgenden Befehl:
cat < peanuts.txt > banana.txt
Hier ist eine Aufschlüsselung dessen, was passiert:
- Der Teil
< peanuts.txtweist die Shell an, diestdinfür dencat-Befehl umzuleiten, sodass dieser auspeanuts.txtliest anstatt von der Tastatur. - Der
cat-Befehl verarbeitet seine Eingabe. In diesem Fall bedeutet die Verwendung voncat stdin, dass der Inhalt vonpeanuts.txtgelesen wird. - Der Teil
> banana.txtleitet die Standardausgabe voncatin eine neue Datei namensbanana.txtum.
Letztendlich wird der Inhalt von peanuts.txt nach banana.txt kopiert. Dieses Beispiel demonstriert effektiv, wie man sowohl stdin als auch stdout in einem einzigen, effizienten Befehl verwaltet.