So speichern Sie Standardfehler in einer Variablen in Bash

So speichern Sie Standardfehler in einer Variablen in Bash

In Bash können Sie die Standardfehlerausgabe eines Befehls in einer Variablen speichern, indem Sie die verwenden '2> & 1' Bediener und der '$ ()' ' Befehlssubstitutionssyntax. Hier '2>' leitet die Fehlermeldung auf & 1 ', das repräsentiert die Standardausgabe. Bei Bash -Shell fungiert als Standardausgabegerät.

  • Zum Beispiel zum Speichern der Standardfehlerausgabe des 'ls' ' Befehl zu einer Variablen mit dem Namen Fehler, können Sie den folgenden Befehl verwenden:
    Fehler = $ (LS Nicht existierende Datei 2> & 1)  
    Speichern Sie den Standardfehler in einer Bash -Variablen

    Alternativ können Sie die verwenden '$?'' Spezieller Parameter zum Speichern des Exit -Status eines Befehls in eine Variable. Der Exit -Status ist ein numerischer Wert, der angibt, ob der Befehl erfolgreich war oder nicht. Ein Wert von '0' ' zeigt den Erfolg an, während ein Wert ungleich Null einen Fehler angibt.

  • Zum Beispiel den Exit -Status der Ausgangsstatus des 'ls' ' Befehl zu einer Variablen mit dem Namen Status, können Sie den folgenden Befehl verwenden:
    LS Nicht existierende Datei  Status = $?  
  • Sie können dann die verwenden "$ Status" Variable, um den Exit -Status der zu überprüfen 'ls' ' Befehl und ergreifen Sie geeignete Maßnahmen basierend auf dem Ergebnis. Zum Beispiel: #!/usr/bin/env bash # pur Ihre Befehle hier, wenn [$ status -ne 0]; dann Echo "Der letzte Befehl des letzten Befehls ist mit einem Fehler fehlgeschlagen."Fi
    123456#!/usr/bin/env bash # pur Ihre Befehle hier, if [$ status -ne 0]; dann Echo "Der letzte Befehl des letzten Befehls ist mit einem Fehler fehlgeschlagen."Fi

Denken Sie daran, dass die '$ ()' ' Mit der Befehlsubstitutionssyntax können Sie einen Befehl ausführen und seine Ausgabe ersetzen. Der '2>' Der Bediener leitet die Standardfehlerausgabe des Befehls in die um '& 1' Stream, der Standardausgangsstrom ist. Auf diese Weise können Sie sowohl die Standardausgabe als auch die Standardfehlerausgabe des Befehls in einer einzelnen Variablen erfassen.