如何在不使用Bash中的临时文件的情况下区分两个管道?假设您有两个命令管道:
foo | bar
baz | quux
Run Code Online (Sandbox Code Playgroud)
而且你想diff在他们的输出中找到它们.一个解决方案显然是:
foo | bar > /tmp/a
baz | quux > /tmp/b
diff /tmp/a /tmp/b
Run Code Online (Sandbox Code Playgroud)
是否可以在Bash中不使用临时文件的情况下这样做?您可以通过在其中一个管道中管道来消除一个临时文件:
foo | bar > /tmp/a
baz | quux | diff /tmp/a -
Run Code Online (Sandbox Code Playgroud)
但是你不能同时将两个管道同时传输到diff中(至少不是以任何明显的方式).是否有一些聪明的技巧涉及/dev/fd不使用临时文件这样做?