Shell
使用管道標準輸入作為下一個命令的參數
如何將命令的輸出用作另一個命令的參數?我的具體範例是,我想獲取一個程序的PID
pgrep
,並將其傳遞-p
給lsof
.我嘗試過以下方法:
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 的情況下執行。