Die Arbeit mit Shell-Skripten war schon immer interessant für Programmierer und Systemadministratoren, da die Ausgabe beiden beim Debuggen und Überwachen hilft. Die Konfiguration der meisten Linux-Distributionen basiert weitgehend auf Dateien, daher ist es wichtig, das Konzept des Schreibens von Daten in eine Textdatei mithilfe eines Skripts oder des Umleitens der Ausgabe an der Befehlszeile zu verstehen.
Linux verwendet drei Hauptdatenströme bei der Kommunikation mit dem Benutzer und dem Computer:
- stdin (STANDARDEINGABE)
- stdout (STANDARDAUSGABE)
- stderr (STANDARDFEHLER)
1. stdin
Dies ist der Datenstrom für die Eingabe von Informationen. Jede Eingabe von einem beliebigen Gerät wie einer Tastatur oder einer Maus fällt unter den Standard-Eingabedatenstrom. stdin wird durch 0 dargestellt Stream-ID.
[Sie könnten auch gerne lesen: Fünf Möglichkeiten, Weiterleitungsoperatoren in Bash zu verwenden]
2. stdout
Dies ist der Datenstrom für die Ausgabe von Daten. Die Ausgabe von Geräten (wie Monitor, Lautsprecher usw.) fällt unter den Standardausgabedatenstrom. stdout wird durch 1 dargestellt Stream-ID.
3. stderr
Der Standardfehler wird verwendet, um alle Fehler zu behandeln, die von den Befehlen erzeugt werden. Jeder Gerätestream (wie Monitor, Lautsprecher usw.), der den Benutzer warnt, dass etwas schief gelaufen ist, kommt unter stderr. stderr wird durch 2 dargestellt Stream-ID.
Wie schreibt man Daten in eine Datei?
Verwenden Sie Umleitungsoperatoren, um die Daten aus den stdout- und stderr-Streams abzurufen und sie in eine Textdatei umzuleiten.
Weiterleitung :Umleitung ist eine Linux-Funktion, die verwendet wird, um Eingabe-/Ausgabegeräte zu ändern, während ein Befehl ausgeführt wird.
Ausgabe-/Fehlerumleitung
Um Daten aus einem Bash-Skript in eine Textdatei zu schreiben, verwenden Sie die Ausgabe-/Fehlerumleitung mit >
und >>
Umleitungsoperatoren.
>
Überschreibt Daten in einer Textdatei.
>>
Hängt Daten an eine Textdatei an.
Ein einfaches Skript erstellen und die Weiterleitung verstehen
date >> test1.txt
who >> test1.txt
date > test2.txt
who > test2.txt
Hier wird die Ausgabe beider Befehle an test1.txt
angehängt während test2.txt
enthält nur die Ausgabe von who
Befehl.
Weiterarbeiten mit Weiterleitung
Das obige Skript leitet nur die Ausgabe um und schlägt im Fehlerfall fehl. Um mit der Umleitung für Ausgabe, Fehler oder beides zu arbeiten, müssen Sie die zusätzlichen Parameter angeben.
Zum Umleiten der Ausgabe:>
oder >>
oder 1>
oder 1>>
Für Umleitungsfehler:2>
oder 2>>
Für die Umleitung beides:&>
oder &>>
Umleitungsfehler
date --who 2>> test1.txt
who 2>> test1.txt
Um nur die Fehler umzuleiten, haben Sie den spezifischen Parameter für den Fehler angegeben. Die Ausgabedatei enthält nur die Ausgabe des ersten Befehls, da sie ein falsches Argument hat.
Andere Argumente können austauschbar verwendet werden, um eine andere Funktionalität zu erreichen.
Das Schreiben des Skripts für andere Befehle ist dasselbe wie das obige Skript und erfordert die oben angezeigten Operatoren.
[ Jetzt herunterladen:Eine Anleitung für Systemadministratoren zum Bash-Skripting. ]
Abschluss
Das Umleiten von Daten nach stdout oder stderr ist sowohl für Entwickler als auch für Systemadministratoren sehr nützlich. Das Verständnis dieser Tools und ihrer Ergebnisse wird Ihnen helfen, neue Dateien zu erstellen, Fehler zu beheben und Systeminformationen zu sammeln.