PIPE_in으로 전송된 `tail -f`를 통해 연결된 두 개의 명명된 PIPE(PIPE_in/PIPE_out)가 PIPE_out에 도달하지 않습니다.

PIPE_in으로 전송된 `tail -f`를 통해 연결된 두 개의 명명된 PIPE(PIPE_in/PIPE_out)가 PIPE_out에 도달하지 않습니다.

1. 명명된 PIPE를 생성 pipe_in하고 pipe_out다음을 실행합니다.

$ mkfifo pipe_in
$ mkfifo pipe_out

2. 연결 pipe_in대상 pipe_out:

TERM0: $ tail -f pipe_in > pipe_out

3. 다음 문자열을 보내고 hello world!도착할 pipe_in것으로 예상합니다 pipe_out.

TERM1: $ tail -f pipe_out
TERM2: $ echo "hello world!" > pipe_in

pipe_out에서 명령을 종료하면 도착한 문자열만 표시됩니다 2.. 이것은 버퍼링 문제인 것 같아서 위의 모든 명령을 실행하기로 결정했지만 stdbuf -i0 -e0 -o0 <command>작동하지 않았습니다.

답변1

tail파일/스트림의 마지막 n 줄만 출력합니다.여전히 행을 생성하는 동안에는 어느 것이 마지막 n인지 알 수 없습니다.

비슷한 것을 시도해 보셨나요 cat?

답변2

작동하지 않는 이유를 보려면 @ctrl-alt-delor의 답변을 참조하세요. 그러나 다음과 같은 방법으로 동일한 목표를 달성할 수 있습니다 cat.

여기에 이미지 설명을 입력하세요.

관련 정보