Shell

使用管道標準輸入作為下一個命令的參數

  • May 22, 2018

如何將命令的輸出用作另一個命令的參數?我的具體範例是,我想獲取一個程序的PIDpgrep ,並將其傳遞-plsof.

我嘗試過以下方法:

  • pgrep myprocess | lsof -p /dev/stdin
  • pgrep myprocess | lsof -p -

我知道你可以這樣做:

pid=$(pgrep myprocess) && lsof -p "$pid"

但必須有更好的方法來做到這一點。也許xargs還是什麼?我找不到干淨的東西,所以我很感激任何幫助。

謝謝!

假設pgrep可能返回多個 PID:

$ pgrep mycommand | xargs -n 1 lsof -p

對於每個 PID,這將lsof -p在附加 PID 的情況下執行。

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