동일한 스트림을 여러 명령으로 스트리밍하는 올바른 방법은 무엇입니까

동일한 스트림을 여러 명령으로 스트리밍하는 올바른 방법은 무엇입니까

나는 부분적인 성공을 거두면서 다음과 같은 간단한 형식을 사용했습니다.

$ 명령 1 | (명령 2; 명령 3; 명령 4...)

그러나 어떤 경우에는 이것이 실패합니다. 예를 들어:

$ seq 100 | (head -10; echo "done") # works fine
$ seq 100 | (head -10; echo "done"; tail -10) # ignores tail
$ seq 1863 | (head -5 ; tail -10) # fails to print the last 10 lines
1
2
3
4
5

1861
1862
1863

이러한 오류가 발생하는 이유에 대한 아이디어는 환영하지만 주로 동일한 입력을 여러 명령에 전달하는 올바른 방법에 관심이 있습니다.

관련 정보