2014-08-31 31 views
8

Sử dụng set -x trong bash sẽ in các lệnh mở rộng vỏ thành stderr. Tôi muốn chuyển hướng chúng đến tệp hoặc đường ống. Nhưng không phải toàn bộ đầu ra - chỉ một số lệnh. Một cái gì đó như:Linux Bash - lệnh gỡ lỗi -x vào một tệp

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

Điều này sẽ đưa đầu ra gỡ lỗi vào lệnh. txt.

Việc này có thể thực hiện được không?

+0

Các mặt hàng này , http://stackoverflow.com/questions/3173131/redirect-copy-of-stdout-to-log-file-from-within-bash-script-itself, chỉ hoạt động đối với stdout. –

Trả lời

10

Với bash 4.1 hoặc sau này:

#!/bin/bash 

exec 5> command.txt 
BASH_XTRACEFD="5" 

echo -n "hello " 

set -x 
echo -n world 
set +x 

echo "!" 

Output để stdout (FD 1):

hello world! 

Output để command.txt (FD 5):

+ echo -n world 
+ set +x 
Các vấn đề liên quan