Dies ist eine alte Version des Dokuments!


LU03a - Datenströme umleiten

Shell Programmierung: Kapitel 1.10.1 - 1.10.5

Jedes Befehl und jedes Skript kennt 3 Hauptdatenströme:

  • 0: Standard-Eingabe (stdin)
  • 1: Standard-Ausgabe (stdout)
  • 2: Standard-Fehlerausgabe (stderr).

In Bash kann das Ziel der Datenströme durch Umleitung verändert werden, um die Ein- und Ausgabe von Befehlen zu steuern.

< ermöglicht es, Eingaben für einen Befehl aus einer Datei zu lesen.

mail -s "Betreff" empfänger@example.com < nachricht.txt

Der Inhalt der Datei wird als Input an den Befehl gesendet.

> leitet die Standardausgabe um.

echo "Hallo" > datei.txt

Schreibt die Ausgabe in eine Datei.

echo "Hallo" >> datei.txt

Hängt die Ausgabe an eine Datei an.

2> leitet Fehlermeldungen um.

ls /nicht/existierend 2> fehler.log

Die Fehlermeldungen werden in eine Datei geschrieben.

>& kombiniert stdout und stderr.

 befehl > ausgabe_und_fehler.log 2>&1

Mit | wird die Standardausgabe eines Befehls an die Standard-Eingabe eines anderen Befehls übergeben.

cat datei.txt | grep "Suchwort"

Der stdout des ersten Befehls wird als stdin des zweiten Befehls verwendet.

Durch das geschickte Kombinieren dieser Techniken können komplexe Datenströme effizient gesteuert und verarbeitet werden.


Marcel Suter

  • modul/m122/learningunits/lu03/datenstroeme.1731581483.txt.gz
  • Zuletzt geändert: 2024/11/14 11:51
  • von msuter