`docker는 foo를 기록합니다 | less`는 검색 또는 스크롤이 불가능하지만`docker logs foo 2> & 1 | 적은


10

둘 중 하나를 사용하면 읽을 수있는 텍스트가 제공됩니다. 그러나 stderr 리디렉션을 사용해야 만 스크롤하거나 / somepattern을 입력하고 일치시킬 수 있습니다.

검색하지 않으면 "검색 할 내용 없음 (RETURN 누르기)"과 ~의 열이 표시됩니다.

주어진 stderr와 stdout은 같지 않지만 더 적은 일을 시작할 때까지 왜 같은 것을 올바르게 표시하지 않습니까?

이것은 내가 이해하지 못하는 이상한 멀티 윈도우 vim 일 것입니다. 생각?

답변:


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

경우 somecommand표준 오류로 인쇄 텍스트 만, 다음 실행할 때 somecommand | less, somecommand그리고 less모두 단말기에 표시된다. stderr의 명령 출력은로 less리디렉션되지 않으므로 터미널로 직접 이동합니다. 먼저 somecommand스크롤 출력은 덜 초기화되고 프롬프트 행을 표시합니다. 다음 때 somecommand완료 이하 (파이프가 폐쇄되어 있기 때문에) 그 입력이 완료되었다는 통지. 약간 실험 해 볼 수도 있습니다.

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

somecommand덜 준비되기 전 또는 후에 출력 을 생성하고 파이프가 닫힐 때 어떻게되는지 확인하기 위해 슬립 시간의 변화 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.