Bash - Umleiten sowohl der Standardausgabe als auch des Standardfehlers in dieselbe Datei
Die Bash-Shell ist die beliebteste Shell auf Linux-Systemen, und um die Shell effizient zu nutzen, benötigen Sie ein wenig Wissen über Bash-Shell-Umleitungen. Dies ist auch ein wesentlicher Schritt beim Erlernen von Bash-Skripten.
In dieser Anleitung zeigen wir, wie Sie die Standardausgabe und den Standardfehler in der Bash-Shell-Befehlszeile in dieselbe Datei umleiten. Dazu gehören mehrere Beispiele, damit Sie in jedem Szenario die richtige Methode auswählen können.
In diesem Tutorial lernen Sie:
- So leiten Sie die Standardausgabe und den Standardfehler in dieselbe Datei um
- So leiten Sie die Standardausgabe und den Standardfehler an Datei und Terminal weiter
- So leiten Sie die Standardausgabe und den Standardfehler nach /dev/null um
Verschiedene Bash-Beispiele für die Umleitung von Standardausgabe und Standardfehler in dieselbe Datei
Umleiten von Standardausgabe und Standardfehler
Lassen Sie uns zunächst behandeln, wie Sie die Standardausgabe in eine Datei umleiten. Wenn Sie diese Bash-Grundlagen bereits beherrschen, können Sie mit den Beispielbefehlen fortfahren.
Normalerweise verwenden Sie > für die Umleitung, und zum Anhängen an eine vorhandene Datei verwenden Sie >>.
echo "linuxconfig.org" > new-file.txt
AND
echo "linuxconfig.org" >> existing-file.txt
Mit diesen Befehlen wird die Standardausgabe in die Datei umgeleitet, und der Standardfehler wird auf dem Bildschirm angezeigt. Falls Sie neu bei Linux sind, ist "Standardausgabe" nur die übliche, erwartete Ausgabe beim Ausführen eines Befehls oder Skripts, und "Standardfehler" sind alle Fehlermeldungen, die auftreten.
Um den Standardfehler stattdessen umzuleiten, können wir 2> verwenden. Dadurch wird die Standardausgabe auf unserem Bildschirm angezeigt und alle Fehlermeldungen werden an eine Datei gesendet.
echo "linuxconfig.org" 2> new-file.txt
Nachdem wir die Grundlagen geklärt haben, behandeln wir nun verschiedene Befehlsbeispiele für die Umleitung von Standardausgabe und Standardfehler in dieselbe Datei.
Verwenden Sie die folgende Befehlssyntax, um die Standardausgabe und den Standardfehler in dieselbe Datei umzuleiten. Fügen Sie
insbesondere 2>&1an das Ende Ihres üblichen Befehls an.echo "linuxconfig.org" > new-file.txt 2>&1Eine etwas einfachere Möglichkeit, diese Funktionalität zu erreichen, ist der Operator
&>. Beachten Sie, dass dies in Bash und zsh gut funktioniert, aber nicht in anderen Shells, also verwenden Sie das vorherige Beispiel für maximale Kompatibilität mit anderen Systemen.echo "linuxconfig.org" &> new-file.txtUm die Standardausgabe und den Standardfehler an eine bereits vorhandene Datei anzufügen, verwenden Sie die gleiche Syntax wie oben, jedoch mit dem Umleitungsoperator
>>.echo "linuxconfig.org" >> existing-file.txt 2>&1Um die Standardausgabe und den Standardfehler von Ihrem Terminal zu unterdrücken und zu vermeiden, dass auch eine Datei generiert wird, können Sie beide nach
/dev/nullumleiten.echo "linuxconfig.org" > /dev/null 2>&1Verwenden Sie die folgende Syntax, um die Standardausgabe in eine Datei und den Standardfehler in eine andere Datei umzuleiten.
echo "linuxconfig.org" 2> std-err.txt 1> std-out.txt-
Wenn Sie die Standardausgabe und den Standardfehler in dieselbe Datei umleiten möchten, während Sie beide in Ihrem Terminal sehen, können wir ein wenig Hilfe mit dem
tee-Befehlerhalten.echo "linuxconfig.org" 2>&1 | tee new-file.txt Wenn Sie die Standardausgabe und den Standardfehler auf Ihrem Bildschirm sehen möchten, während Sie sie an dieselbe Datei anhängen, können wir die Option
-a(append) mitteeverwenden.echo "linuxconfig.org" 2>&1 | tee -a existing-file.txt
Abschließende Gedanken
In dieser Anleitung haben wir gesehen, wie Sie sowohl die Standardausgabe als auch den Standardfehler in Bash auf dieselbe Datei umleiten können. Dazu gehörten mehrere verschiedene Bash-Operatoren, je nachdem, ob wir eine neue Datei erstellen oder an eine vorhandene Datei anhängen möchten. Wir haben auch gelernt, wie man den tee-Befehl verwendet, um die Standardausgabe und den Standardfehler auf unserem Terminal zu sehen und sie gleichzeitig in eine Datei zu schreiben. Sie sind jetzt ein Experte für die Umleitung von Standardausgaben und Standardfehlern in eine Datei in Bash und sind der vollständigen Beherrschung der Shell viel näher gekommen.
