+--------------------+ +------+ +----------+
| stdout |·······→| less |——————→| |
| somecommand | +------+ | terminal |
| stderr |——————————————————————→| |
+--------------------+ +----------+
Якщо somecommand
друкується текст лише до стандартної помилки, тоді, коли ви запустите somecommand | less
, somecommand
і less
обидва відображаються до терміналу. Вихід команди на її stderr не збирається less
, він прямує до терміналу, оскільки він не перенаправлений. Спочатку висновок somecommand
прокручується, тоді як менше ініціалізується та показує його рядок; тоді, коли somecommand
закінчується менше, помічає, що його вхід закінчений (тому що труба закрита). Ви можете трохи експериментувати: запустити
{ sleep 1; somecommand; sleep 1; } | { sleep 0; less; }
і коли є час зміни режиму сну, щоб somecommand
отримати вихід до або після того, як менше буде готово, і побачити, що станеться, коли труба закрита.