Ich habe ein Shell-Skript mit set -x
ausführlicher / Debug-Ausgabe:
#!/bin/bash
set -x
command1
command2
...
Die Ausgabe sieht folgendermaßen aus:
+ command1
whatever output from command1
+ command2
whatever output from command2
Mein Problem ist, der Shell - Ausgang (durch set -x
) geht zum Stderr, mit der Ausgabe der Befehle vermischen ( command1
, command2
, ...). Ich würde mich freuen, wenn die "normale" Ausgabe auf dem Bildschirm (wie das Skript ohne ausgeführt würde set -x
) und die "zusätzliche" Ausgabe von bash separat in einer Datei wären .
Deshalb möchte ich Folgendes auf dem Bildschirm haben:
whatever output from command1
whatever output from command2
und dies in einer Protokolldatei:
+ command1
+ command2
(Auch in Ordnung, wenn die Protokolldatei alles zusammen hat)
Die set -x 2> file
offensichtlich nehmen doens't die richtige Wirkung, weil es nicht die Ausgabe des Befehls set, aber es das Verhalten der bash ändern.
Das Verwenden bash 2> file
für das gesamte Skript ist auch nicht richtig, da es den stderr jedes Befehls umleitet, der auch in dieser Shell ausgeführt wird, sodass die Fehlermeldung der Befehle nicht angezeigt wird.