我使用了这个简单的形式并取得了部分成功:
$ 命令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
尽管欢迎任何关于为什么会发生这些失败的想法,但我主要感兴趣的是将相同输入传递给多个命令的正确方法。