2014-08-31 7 views
8

Używanie set -x w bash powoduje wypisanie poleceń rozszerzonych powłoki do stderr. Chciałbym przekierować je do pliku lub potoku. Ale nie całe wyjście - tylko niektóre polecenia. Coś jak:Linux Bash - przechwytywanie -x debugowanie poleceń do pliku

set -x command.txt ### <-- command.txt param is made up 
echo $A $B 
set +x 

To postawiłoby wyjście debugowania do komendy. tekst.

Czy to można zrobić?

+0

Znaleziono tym , http://stackoverflow.com/questions/3173131/redirect-copy-of-stdout-to-log-file-from-within-bash-script-self, działa tylko na stdout. –

Odpowiedz

10

z bash 4.1 lub późniejszym:

#!/bin/bash 

exec 5> command.txt 
BASH_XTRACEFD="5" 

echo -n "hello " 

set -x 
echo -n world 
set +x 

echo "!" 

stdout (FD 1)

hello world! 

wyjściowy do command.txt (FD 5)

+ echo -n world 
+ set +x 
Powiązane problemy