GNU/Linux >> Belajar Linux >  >> Linux

Tampilkan Hanya Stderr Di Layar Tetapi Tulis Stdout Dan Stderr Ke File?

Bagaimana saya bisa menggunakan sihir BASH untuk mencapai ini?
Saya hanya ingin melihat output stderr di layar,
tetapi saya ingin stdout dan stderr ditulis ke file.

Klarifikasi:
Saya ingin stdout dan stderr berakhir di file yang sama. Dalam urutan terjadinya.
Sayangnya tidak ada jawaban di bawah ini yang melakukan hal ini.

Jawaban yang Diterima:

Bahkan tanpa pengalihan apa pun, atau hanya dengan >logfile 2>&1 , Anda tidak dijamin melihat keluaran dalam urutan pembuatan.

Sebagai permulaan, stdout dari aplikasi akan buffer-line (ke tty) atau buffered (ke pipa) tapi stderr unbuffered, sehingga hubungan antara urutan output rusak sejauh menyangkut pembaca. Tahap selanjutnya dalam saluran apa pun yang dapat Anda buat tidak akan mendapatkan akses yang dipesan secara deterministik ke dua aliran (mereka secara konseptual adalah hal-hal yang terjadi secara paralel, dan Anda selalu tunduk pada penjadwal – jika pada saat pembaca Anda mendapatkan sepotong, penulis sudah ditulis ke kedua pipa, Anda tidak bisa membedakan mana yang lebih dulu).

"[T]ia memesan mereka terjadi" hanya benar-benar diketahui aplikasi. Pengurutan output di stdout/stderr adalah masalah – klasik, mungkin – yang terkenal.


Linux
  1. Output Ke Stdout Dan Pada Saat Yang Sama Grep Ke File?

  2. Cara Mengarahkan Keluaran Program Dan Masih Melanjutkannya ke Stdout?

  3. Redirect Dan Output Pipa?

  1. Apakah mungkin membuat keluaran stdout dan stderr menjadi warna berbeda di XTerm atau Konsole?

  2. Redirect semua output ke file di Bash

  3. Gema ke stdout dan stderr

  1. Mungkinkah deskriptor file linux 0 1 2 bukan untuk stdin, stdout dan stderr?

  2. Bagaimana cara membatasi keluaran ls untuk hanya menampilkan nama file, tanggal dan ukuran?

  3. bash:redirect stderr ke file dan stdout + stderr ke layar