2016-05-06 20 views
1

Unser Shell-Skript den HeaderShell-Skript: umleiten Ausgabe

#!/bin/bash -x 

, die die Befehle verursacht enthält auch aufgeführt werden. Statt

$ ./script.sh &> log.txt 

eingeben zu müssen würde Ich mag einen Befehl an diesem Skript hinzuzufügen, das alle folgenden Ausgabe (auch) in einer Protokolldatei protokolliert. Wie ist das möglich?

Antwort

6

Sie diese Zeile am Anfang des Skripts platzieren können:

# redirect stdout/stderr to a file 
exec &> log.txt 

EDIT: Wie pro Kommentare unter:

#!/bin/bash -x 

# redirect stdout/stderr to a file and still show them on terminal 
exec &> >(tee log.txt; exit) 
+0

Haben Sie meine ich ersetzen müssen die ' #!/bin/bash -x' mit 'exec &> log.txt'? Wenn ja, wie wird sichergestellt, dass/bin/bash gestartet wird? –

+1

@ThomasS nein Sie nicht – 123

+0

Kurz nach '#!/Bin/bash -x' Zeile einfügen' exec &> log.txt' – anubhava

Verwandte Themen