`docker günlükleri foo | less` aranamaz veya kaydırılamaz ancak `docker foo 2 'yi günlüğe kaydeder> & 1 | az`


10

İkisinden birini kullanmak okunabilir metin verir. Ancak sadece stderr yönlendirmesi ile bir kaydırma veya yazma / somepattern ve eşleşmeler alabilirsiniz.

O olmadan arama "Hiçbir şey (RETURN tuşuna basın)" ve ~ 's sütun verir.

Verilen, stderr ve stdout aynı değil, ama daha az bir şey yapmaya başlayana kadar neden daha azı aynı şeyi gösteriyor?

Belki biraz anlamadığım garip bir çok pencereli vim şey. Düşünceler?

Yanıtlar:


7
+--------------------+        +------+       +----------+
|             stdout |·······→| less |——————→|          |
| somecommand        |        +------+       | terminal |
|             stderr |——————————————————————→|          |
+--------------------+                       +----------+

Eğer somecommandstandart hataya baskılar metin yalnızca, o zaman çalıştırdığınızda somecommand | less, somecommandve lessher iki terminale görüntüleniyor. Komutun stderr'deki çıkışı gitmez, lessdoğrudan terminale gider, çünkü yönlendirilmez. İlk önce somecommandkaydırma çıktısı daha az başlatılır ve komut istemi satırı gösterilir; daha sonra somecommandbitirdiğinde girişinin tamamlandığını daha az fark eder (çünkü boru kapalıdır). Biraz deneme yapmak isteyebilirsiniz: çalıştırın

{ sleep 1; somecommand; sleep 1; } | { sleep 0; less; }

ve somecommanddaha az hazır olmadan önce veya sonra çıktı üretmek ve boru kapatıldığında ne olacağını görmek için uyku sürelerindeki değişiklikler .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.