Assumindo que pgrep
pode retornar vários PIDs:
$ pgrep mycommand | xargs -n 1 lsof -p
Isso, para cada PID, executará lsof -p
com o PID anexado.
Como eu uso a saída de um comando como um parâmetro em outro comando? Meu exemplo específico é que eu quero pegar o PID de um processo usando pgrep
e passá-lo para a opção -p
de lsof
.
Eu tentei coisas como as seguintes:
pgrep myprocess | lsof -p /dev/stdin
pgrep myprocess | lsof -p -
Eu sei que você pode fazer assim:
pid=$(pgrep myprocess) && lsof -p "$pid"
Mas tem que haver uma maneira melhor de fazer isso. Talvez xargs
ou algo assim? Eu não consegui encontrar algo limpo, então agradeço qualquer ajuda.
Obrigado!
Assumindo que pgrep
pode retornar vários PIDs:
$ pgrep mycommand | xargs -n 1 lsof -p
Isso, para cada PID, executará lsof -p
com o PID anexado.
Tags command-line shell arguments