Dengan bash baru-baru ini, Anda dapat menggunakan substitusi proses.
foo 2> >(tee stderr.txt)
Ini hanya mengirimkan stderr ke tee program yang sedang berjalan.
Lebih mudah dibawa
exec 3>&1
foo 2>&1 >&3 | tee stderr.txt
Ini membuat deskriptor file 3 menjadi salinan dari stdout saat ini (yaitu layar), lalu menyiapkan pipa dan menjalankan foo 2>&1 >&3
. Ini mengirimkan stderr dari foo ke tempat yang sama dengan stdout saat ini, yang merupakan pipa, kemudian mengirimkan stdout ke fd 3, output aslinya. Pipa memasukkan stderr asli dari foo ke tee, yang menyimpannya dalam file dan mengirimkannya ke layar.
Urutkan file teks dengan banyak baris sebagai satu baris
Cara mendaftar deskriptor file terbuka (dan file yang mereka rujuk) di sesi bash saya saat ini