Website-Suche

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.

  1. Verwenden Sie die folgende Befehlssyntax, um die Standardausgabe und den Standardfehler in dieselbe Datei umzuleiten. Fügen Sie insbesondere 2>&1 an das Ende Ihres üblichen Befehls an.

    
    echo "linuxconfig.org" > new-file.txt 2>&1
    
  2. Eine 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.txt
    
  3. Um 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>&1
    
  4. Um 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/null umleiten.

    
    echo "linuxconfig.org" > /dev/null 2>&1
    
  5. Verwenden 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
    
  6. 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-Befehl erhalten.

    
    echo "linuxconfig.org" 2>&1 | tee new-file.txt
    
  7. 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) mit tee verwenden.

    
    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.

Verwandte Artikel: