Ich muss die Ausgabe und Fehler eines Befehls in meinem Bash-Skript erfassen und wissen, ob der Befehl erfolgreich war oder nicht.bash variable capture stderr und stdout getrennt oder erhalten exit-wert
Im Moment bin ich erfassen beide wie folgt aus:
output=$(mycommand 2>&1)
Ich muss dann den Exit-Wert von mycommand überprüfen. Wenn es fehlschlägt, muss ich etwas mit der Ausgabe machen, wenn der Befehl erfolgreich war, muss ich die Ausgabe nicht berühren.
Da ich die Ausgabe erfassen, überprüfen $? ist immer eine 0, da es bash gelungen ist, die Ausgabe in die Variable einzufangen. Dieses
ist ein sehr zeitkritische Skript, so dass wir versuchen, alle langsamen Lösungen zu vermeiden, wie in eine Datei ausgeben und wieder lesen auf.
Wenn ich stdout zu einer Variablen und stderr zu einem anderen erfassen könnte, das würde mein Problem lösen, weil ich einfach überprüfen könnte, ob die Fehlervariable leer war oder nicht.
Danke.
See [BashFAQ/002] (http://mywiki.wooledge.org/BashFAQ/002) und [BashFAQ/047] (http://mywiki.wooledge.org/BashFAQ/047). –