So speichern Sie Standardfehler in einer Variablen in Bash
- 3004
- 262
- Miriam Bauschke
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 -VariablenAlternativ 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 DateiStatus = $? - 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."Fi123456 #!/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.