Ausführen eines Shell-Skripts: So schließen Sie Befehle in die Ausgabe ein, als ob sie interaktiv eingegeben worden wären

Ausführen eines Shell-Skripts: So schließen Sie Befehle in die Ausgabe ein, als ob sie interaktiv eingegeben worden wären

Wie kann ich ein Shell-Skript (bash, falls das wichtig ist) ausführen/sourcen und die Ausgabe erhalten?enthaltendie Befehle im Skript? Ich möchte die Ausgabe in eine Datei umleiten, wie in

$ ./my_script > output.txt

und die output.txtDatei soll die Befehle aus dem Skript enthalten, als hätte ich ihren Inhalt interaktiv in ein Terminal eingegeben und dann den Inhalt des Terminalfensters in eine Datei kopiert und eingefügt.

Bonuspunkte für Lösungen, bei denen sich die Befehle optisch von den Ausgabezeilen unterscheiden, wie in einem Terminal mit dem vorangestellten $.

Antwort1

Fügen Sie in Ihrem Skript vor allen Befehlen die folgende Zeile hinzu (dadurch wird jeder Befehl vor der Ausführung in stderror geschrieben):

set -x

dann starten Sie Ihr Skript:

./my_script > output.txt 2>&1

verwandte Informationen