Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk membuat output (stdout, stderr) dari mana-mana arahan shell tidak dibuffer?
Adakah terdapat cara untuk menjalankan arahan shell tanpa penimbalan output?
Sebagai contoh, hexdump 文件 | ./my_script
hanya akan menghantar input daripada hexdump ke my_script dalam ketulan penimbal, bukan baris demi baris.
Apakah penyelesaian umum untuk membuat keluaran mana-mana arahan tidak ditimbal?
Setahu saya, anda tidak boleh melakukan ini tanpa hack yang jelek. Menulis pada paip (atau membaca daripada paip) secara automatik menghidupkan penimbalan penuh, tiada apa yang boleh anda lakukan mengenainya :-(. "Penimbalan talian" (yang anda mahukan) hanya digunakan apabila membaca/menulis ke terminal. Penggodaman hodoh Itulah yang mereka lakukan: mereka menyambungkan atur cara ke terminal pseudo supaya alat lain dalam saluran paip membaca/menulis dari terminal itu dalam mod buffer baris Keseluruhan masalah diterangkan seperti berikut:
Halaman ini juga menyediakan beberapa cadangan ("godam hodoh" yang disebutkan di atas) untuk melakukan beberapa helah menggunakan unbuffer
或使用 LD_PRELOAD
.
Atas ialah kandungan terperinci Bagaimana untuk membuat output (stdout, stderr) dari mana-mana arahan shell tidak dibuffer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!