将命令通过管道传输到 pv 但隐藏所有原始命令的输出

Lee*_*ard 5 bash pipe pv

我正在尝试使用pv,但我想隐藏我通过管道输入的命令,同时仍然能够看到 pv 的输出。使用command &> /dev/null | pv不起作用(如 pv 不接收任何数据)。command在标准输出和标准错误上都产生输出,我也不想看到。

我尝试使用 grep 管道 ( command &> /dev/null | pv | grep <=>) 但不时将内容输出到终端。

Mic*_*mer 7

man pv

要使用它,请将其插入两个进程之间的管道中,并使用适当的选项。它的标准输入将传递到其标准输出,进度将显示在标准错误上。

您看到的输出来自pv. 进度条在 stderr 上,您输入的内容在 stdout 上。您可以重定向输出:

cmd | pv > /dev/null
Run Code Online (Sandbox Code Playgroud)

你仍然会得到进度条输出。

如果该命令也在 stderr 上生成自己的文本,则可以在将输出传递/dev/null之前将其显式重定向pv:

cmd 2>/dev/null | pv > /dev/null
Run Code Online (Sandbox Code Playgroud)