Saya memiliki serangkaian perintah a, b, c yang saya chaining bersama-sama dengan &&: a && b && c
.
Saya ingin menangkap output dari semua perintah untuk stdout dan stderr.
a && b && c 2>&1 > capture_file
hanya menangkap output dari perintah c.
shell
io-redirection
TLOlczyk
sumber
sumber
2>&1
berarti menduplikasi tujuan stdout (1) ke stderr (2), jadi itu akan sia-sia kecuali Anda sudah mengatur pengalihan stdout sebelumnya.2>capture_file >&2
(tapi tidak, karena itu tidak idiomatik). Yang penting adalah Anda mengarahkan salah satu dari mereka ke file sebelum menduplikasi aliran itu ke yang lain.Selain menggunakan pengelompokan perintah,
{}
Anda juga dapat menjalankan perintah dalam subkulit dan menangkap output (dan / atau kesalahan) sekaligus:Contoh:
sumber