有没有办法输出到stdout和另一个进程的stdin?也就是说,在中间标准输出到达另一个过程的管道之前输出它?
我知道tee命令允许您写入文件和stdout,但我不想在此处涉及任何文件。
答案 0 :(得分:1)
这是一个小小的" hacky"我猜,但您可以将tee
的输出重定向到stderr
。由于大多数程序都从stdin
获取输入,因此重定向到stderr
将保留原始输出,同时仍然可以直接进入下一个过程。
例如,
cat file.txt | tee >&2 | wc -l
将输出file.txt的全部内容,然后然后输出file.txt中的行数(wc -l
)。
显然,这只有在stderr输出你想要的地方时才会起作用(如终端/控制台)。
不是一个理想的解决方案,因为它涉及使用stderr
来完成它不一定适用的东西,但它有效。