Ứng dụng python của bạn phải ghi đầu ra của nó vào kênh đầu ra STDERR thay vì STDOUT thông thường. Sử dụng cấu trúc shell >
chỉ bắt và chuyển hướng dữ liệu được ghi vào kênh đầu ra, nhưng thực tế có một số kênh khác có thể được in, phổ biến nhất là kênh thứ hai, thường được sử dụng cho các lỗi.
Bạn có thể thử bẫy STDERR (kênh thứ 2) cũng như thế này:
python ./manage.py dumpdata partyapp.InvitationTemplate > partyapp_dump.json 2>&1
Cấu 2>&1
trúc kết nối luồng đầu ra cho các lỗi với kênh đầu ra bình thường. Thật bất thường khi một chương trình tạo đầu ra mà bạn muốn chụp trên kênh lỗi; thông thường sẽ được dành riêng cho thông tin gỡ lỗi không phải dữ liệu ứng dụng. Vui lòng sử dụng tập lệnh này một cách thận trọng vì nó hoạt động theo cách không chuẩn.
Bạn cũng có thể kết xuất các kênh đầu ra và lỗi vào các tệp khác nhau như sau:
python ./manage.py dumpdata partyapp.InvitationTemplate > partyapp_dump.json 2> error_output.txt
&>
sẽ chỉ hoạt động trong Bash 4.0 và iirc các phiên bản gần đây của zsh. Đối với một giải pháp di động hơn ,foo > bar 2&>1
. Tham khảo: mywiki.wooledge.org/BashFAQ/014