`docker log foo | less` non è ricercabile o scorrevole ma `docker registra foo 2> & 1 | meno` è


10

L'uso di uno dei due fornisce un testo leggibile. Ma solo con il reindirizzamento stderr è possibile scorrere o digitare / somepattern e ottenere corrispondenze.

Senza di essa, la ricerca fornisce "Nulla da cercare (premi INVIO)" e una colonna di ~.

Dato, stderr e stdout non sono gli stessi, ma perché meno li mostra allo stesso modo fino a quando non inizio a fare qualcosa in meno?

Questa forse è una strana cosa vim multi-finestra che non capisco. Pensieri?

Risposte:


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

Se somecommandle stampe di testo per errore standard unico, poi, quando si esegue somecommand | less, somecommande lesssono entrambi visualizzazione al terminale. L'output del comando sul suo stderr non lo farà less, ma andrà direttamente al terminale, poiché non viene reindirizzato. Innanzitutto l'output di somecommandscrolls mentre meno inizializza e mostra la sua riga di prompt; quindi quando somecommandtermina meno si accorge che il suo input è completo (perché la pipe è chiusa). Potresti voler sperimentare un po ': corri

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

e variazioni sui tempi di sospensione per somecommandprodurre output prima o dopo che sia pronto meno e vedere cosa succede quando il tubo è chiuso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.