Dan*_*ous 9 command-line shell arguments
如何使用命令的输出作为另一个命令的参数?我的具体的例子是,我想要得到的PID使用过程中pgrep
,并把它传递给-p
的选项lsof
。
我试过如下:
pgrep myprocess | lsof -p /dev/stdin
pgrep myprocess | lsof -p -
我知道你可以这样做:
pid=$(pgrep myprocess) && lsof -p "$pid"
但必须有更好的方法来做到这一点。也许xargs
或什么?我一直找不到干净的东西,所以我很感激任何帮助。
谢谢!
Kus*_*nda 12
假设pgrep
可能返回多个PID:
$ pgrep mycommand | xargs -n 1 lsof -p
Run Code Online (Sandbox Code Playgroud)
对于每个 PID,这将lsof -p
在附加PID 的情况下运行。