Aplikasi python Anda harus menulis outputnya ke saluran output STDERR alih-alih STDOUT normal. Menggunakan shell konstruksi >
hanya menangkap dan mengalihkan data yang ditulis ke saluran output, tetapi sebenarnya ada beberapa saluran lain yang dapat dicetak, yang paling umum adalah yang kedua, biasanya digunakan untuk kesalahan.
Anda dapat mencoba menjebak STDERR (saluran ke-2) juga seperti ini:
python ./manage.py dumpdata partyapp.InvitationTemplate > partyapp_dump.json 2>&1
The 2>&1
konstruk menghubungkan output stream untuk kesalahan ke saluran output normal. Merupakan hal yang tidak biasa bagi suatu program untuk menghasilkan keluaran yang ingin Anda tangkap pada saluran kesalahan; biasanya itu akan dicadangkan untuk informasi debug bukan data aplikasi. Silakan gunakan skrip ini dengan hati-hati karena berperilaku dengan cara yang tidak standar.
Anda juga dapat membuang saluran keluaran dan galat ke berbagai file seperti ini:
python ./manage.py dumpdata partyapp.InvitationTemplate > partyapp_dump.json 2> error_output.txt
&>
hanya akan bekerja di Bash 4.0 dan iirc versi terbaru dari zsh. Untuk solusi yang lebih portabelfoo > bar 2&>1
,. Referensi: mywiki.wooledge.org/BashFAQ/014