bash Variable Capture stderr und stdout getrennt oder Exit-Wert erhalten [duplicate]

Diese Frage hat hier bereits eine Antwort:

Capture stdout und stderr in verschiedene Variablen 13 answers

Ich muss die Ausgabe und den Fehler eines Befehls in meinem Bash-Skript erfassen und wissen, ob der Befehl erfolgreich war oder nicht.

Im Moment fange ich beide wie folgt ein:

output=$(mycommand 2>&1)

Ich muss dann den Exit-Wert von mycommand überprüfen. Wenn es fehlgeschlagen ist, muss ich einige Dinge mit der Ausgabe tun. Wenn der Befehl erfolgreich war, muss ich die Ausgabe nicht berühren.

Seit ich die Ausgabe aufzeichne und $ prüfe? ist immer eine 0, da bash die Ausgabe erfolgreich in der Variablen erfasst hat.

Dies ist ein sehr zeitkritisches Skript, daher versuchen wir, langsamere Lösungen wie die Ausgabe in eine Datei und das erneute Einlesen zu vermeiden.

Wenn ich stdout für eine Variable und stderr für eine andere erfassen könnte, würde dies mein Problem lösen, da ich nur überprüfen könnte, ob die Fehlervariable leer ist oder nicht.

Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage