Вот единственное решение для MacOS:
top -pid `pgrep java | awk 'ORS=" -pid "' | sed 's/.\{6\}$//'`
хотя это будет нежелательно сообщать, invalid option or syntax: -pid
если нет активных java
процессов.
ОБЪЯСНЕНИЕ
Другие решения, размещенные здесь, используют этот формат top -p id1,id2,id3
, но MacOS top
поддерживает только громоздкий формат.top -pid id1 -pid id2 -pid id3
.
Итак, во-первых, мы получаем список идентификаторов процессов, которые имеют имя процесса "java":
pgrep java
и мы передаем это, awk
которое объединяет результаты с разделителем" -pid "
| awk 'ORS=" -pid "'
Увы, остается ограничитель! Например, мы уже могли получить строку "123 -pid 456 -pid 789 -pid "
.
Затем мы просто используем sed
для удаления последних 6 символов разделителя.
| sed 's/.\{6\}$//'`
Мы готовы передать результаты top
:
top -pid `...`