+--------------------+ +------+ +----------+
| stdout |·······→| less |——————→| |
| somecommand | +------+ | terminal |
| stderr |——————————————————————→| |
+--------------------+ +----------+
Jika somecommand
mencetak teks ke kesalahan standar saja, maka ketika Anda menjalankan somecommand | less
, somecommand
dan less
keduanya ditampilkan ke terminal. Output dari perintah pada stderrnya tidak akan less
, itu akan langsung ke terminal, karena tidak diarahkan. Pertama-tama output dari somecommand
gulungan dengan kurang menginisialisasi dan menunjukkan baris promptnya; maka ketika somecommand
selesai pemberitahuan kurang bahwa inputnya selesai (karena pipa ditutup). Anda mungkin ingin bereksperimen sedikit: jalankan
{ sleep 1; somecommand; sleep 1; } | { sleep 0; less; }
dan variasi waktu tidur untuk somecommand
menghasilkan keluaran sebelum atau sesudah kurang siap dan untuk melihat apa yang terjadi ketika pipa ditutup.
Gilles 'SANGAT berhenti menjadi jahat'
sumber