如何连接 fish shell 中的两个无限流?

How to concatenate two infinite streams in fish shell?

在 Fish shell 中,我如何对命令进行分组,例如所有都应该通过管道传输到同一个下一个命令吗?

例如,在bash

# With "normal" commands
(cat file1; cat file2) | xargs -I% echo 'this is a line: %'

# Or with commands that might not end, to intertwine the output of both
(tail -f infinite-log1 & tail -f infinite-log2) | xargs -I% echo 'this is a line: %'

起初我以为我可以用 catpsub 来解决它,但这不起作用,因为其中任何一个都不是为无限流而设计的。

# This won't work
cat (infinite-stream-1 | psub) (infinite-stream-2 | psub) | xargs -I% echo 'this is a line: %'

您需要 beginend 而不是括号。例如

begin; tail -f infinite-log1 & tail -f infinite-log2; end | xargs -I% echo 'this is a line: %'

请注意,fish 的后台功能有限,目前还不能后台功能。