Bash

將命令通過管道傳輸到 pv 但隱藏所有原始命令的輸出

  • June 29, 2017

我正在嘗試使用pv,但我想隱藏我通過管道輸入的命令,同時仍然能夠看到 pv 的輸出。使用command &> /dev/null | pv不起作用(例如, pv 不接收任何數據)。command在標準輸出和標準錯誤上產生輸出,我也不想看到。

我嘗試使用 grep 管道(command &> /dev/null | pv | grep <=>),但它不時將內容輸出到終端。

man pv

要使用它,請將其插入兩個程序之間的管道中,並帶有適當的選項。它的標準輸入將被傳遞到其標準輸出,並且進度將顯示在標準錯誤上。

您看到的輸出來自pv. 進度條在 stderr 上,您輸入的內容在 stdout 上。您可以重定向輸出:

cmd | pv > /dev/null

你仍然會得到進度條輸出。

如果該命令也在 stderr 上生成自己的文本,則可以在將輸出傳遞到之前將其顯式重定向/dev/nullpv到:

cmd 2>/dev/null | pv > /dev/null

引用自:https://unix.stackexchange.com/questions/374045