여러 스트림을 단일 스트림으로 다중화 - Bash

여러 스트림을 단일 스트림으로 다중화 - Bash

나는 한동안이 문제를 겪었습니다.

상상하다
제가 하고 싶은 것은 CLI를 사용하여 프로그램을 실행하는 것입니다. 프로그램은 한 번에 하나의 명령을 받아 실행합니다. 대부분의 경우 이러한 명령은 일괄적으로 실행됩니다. 따라서 하나의 스트림에서 일련의 명령을 캡처하는 것은 매우 효율적이지만 때때로 수동 개입을 위해 키보드를 통해 몇 가지 추가 명령을 보내고 싶습니다.

나는 그것을 해결하려고 노력한다
아래와 같이 명명된 파이프를 사용하고 아래 표시된 대로 모두 동일한 파일 설명자로 리디렉션했습니다.

선입선출

$ mkfifo /tmp/testpipe
$ mknod /tmp/testpipe p

리디렉션

{ cat /tmp/testpipe &
  cat - &
  wait; } | consumer_process

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

인용하다:여러 파이프를 함께 연결하는 "티"의 반대 기능이 있습니까?

질문
위에서 설명한 설정을 사용하면 처음으로 명명된 파이프에 무언가를 밀어 넣을 때 예상대로 잘 작동하지만 두 번째로 파이프에 무언가를 밀어 넣으면 소비자 프로세스에 도달하지 못합니다.

문제를 해결하려는 시도가 실패했습니다.
명명된 파이프를 캡처하고 반대쪽 끝에서 에코해 보세요. 처음에는 효과가 있었지만 두 번째에는 효과가 없었습니다.

첫 학기

cat /tmp/testpipe &

두 번째 학기

echo "TESTING123" > /tmp/testpipe   --> Received on term 1
echo "TESTING123" > /tmp/testpipe   --> Nothing received on term 1

이 문제를 해결하거나 이 작업을 더 쉽게 수행할 수 있는 방법이 있습니까?

관련 정보