Mit einer aktuellen Bash können Sie die Prozesssubstitution verwenden.
foo 2> >(tee stderr.txt)
Dies sendet einfach stderr an ein Programm, das tee.
ausführtTragbarer
exec 3>&1
foo 2>&1 >&3 | tee stderr.txt
Dies macht den Dateideskriptor 3 zu einer Kopie der aktuellen Standardausgabe (d. h. des Bildschirms), richtet dann die Pipe ein und führt foo 2>&1 >&3
aus . Dies sendet die stderr von foo an dieselbe Stelle wie die aktuelle stdout, die die Pipe ist, und sendet dann die stdout an fd 3, die ursprüngliche Ausgabe. Die Pipe speist die ursprüngliche Stderr von foo to tee, die sie in einer Datei speichert und an den Bildschirm sendet.