+--------------------+ +------+ +----------+
| stdout |·······→| less |——————→| |
| somecommand | +------+ | terminal |
| stderr |——————————————————————→| |
+--------------------+ +----------+
यदि somecommand
केवल मानक त्रुटि के लिए पाठ प्रिंट करता है, तो जब आप चलाते हैं somecommand | less
, somecommand
और less
दोनों टर्मिनल पर प्रदर्शित होते हैं। इसके स्टैडर पर कमांड का आउटपुट नहीं जा रहा है less
, यह सीधे टर्मिनल पर जा रहा है, क्योंकि इसे रीडायरेक्ट नहीं किया गया है। पहले somecommand
स्क्रॉल का आउटपुट, जबकि कम इनिशियलाइज़ करता है और अपनी प्रॉम्प्ट लाइन दिखाता है; तब जब somecommand
कम नोटिस समाप्त होता है कि इसका इनपुट पूरा हो गया है (क्योंकि पाइप बंद है)। आप थोड़ा प्रयोग करना चाहते हैं: चला सकते हैं
{ sleep 1; somecommand; sleep 1; } | { sleep 0; less; }
और somecommand
कम समय से पहले या बाद में उत्पादन का उत्पादन करने के लिए नींद के समय में बदलाव और यह देखने के लिए कि पाइप बंद होने पर क्या होता है।