+--------------------+ +------+ +----------+
| stdout |·······→| less |——————→| |
| somecommand | +------+ | terminal |
| stderr |——————————————————————→| |
+--------------------+ +----------+
がsomecommand
テキストを標準エラーにのみ出力する場合、を実行するとsomecommand | less
、somecommand
とのless
両方が端末に表示されます。stderrでのコマンドの出力はになりless
ません。リダイレクトされないため、直接端末に送られます。まず、somecommand
lessが初期化してプロンプトラインを表示する間に、scroll の出力がスクロールします。次に、がsomecommand
少なくなると、入力が完了したことが通知されます(パイプが閉じているため)。少し実験したいかもしれません:実行
{ sleep 1; somecommand; sleep 1; } | { sleep 0; less; }
somecommand
以下の準備ができている前または後に出力を生成し、パイプが閉じているときに何が起こるかを確認するためのスリープ時間のバリエーション。