모든 출력을 다른 프로세스로 스트리밍하는 방법은 무엇입니까?

모든 출력을 다른 프로세스로 스트리밍하는 방법은 무엇입니까?

다음 Bash 스크립트를 사용하십시오 3-output-writer.sh.

echo A >&1
echo B >&2
echo C >&3

물론 Bash는 세 번째 출력 스트림으로 무엇을 해야 할지 모르기 때문에 . 3-output-writer.sh실행 시 오류가 발생합니다 . 3: Bad file descriptor그러나 쉽게 할 수 . 3-output-writer.sh 3>file.txt있으며 Bash는 만족할 것입니다.

하지만 문제는 이 세 가지를 동시에 사용할 수 있도록 이 모든 것을 다른 프로세스에 어떻게 연결해야 하는가입니다. 예를 들어 세 개의 명명된 파이프를 만드는 것 외에 다른 방법이 있습니까?

mkfifo pipe1 pipe2 pipe3  # prepare pipes
. 3-output-writer.sh 1>pipe1 2>pipe2 3>pipe3 &  # background the writer, awaiting readers
3-input-reader pipe1 pipe2 pipe3  # some sort of reader, careful not to block
rm pipe1 pipe2 pipe3

?

관련 정보