Đây là giải pháp duy nhất cho đến nay cho MacOS:
top -pid `pgrep java | awk 'ORS=" -pid "' | sed 's/.\{6\}$//'`
mặc dù điều này chắc chắn sẽ báo cáo invalid option or syntax: -pid
nếu không có java
quy trình nào còn tồn tại.
GIẢI TRÌNH
Các giải pháp khác được đăng ở đây sử dụng định dạng top -p id1,id2,id3
, nhưng MacOS ' top
chỉ hỗ trợ định dạng khó sử dụng top -pid id1 -pid id2 -pid id3
.
Vì vậy, trước tiên, chúng tôi nhận được danh sách các id quy trình có tên quy trình là "java":
pgrep java
và chúng tôi chuyển điều này tới awk
kết nối kết quả với dấu phân tách" -pid "
| awk 'ORS=" -pid "'
Than ôi, điều này để lại một dấu phân cách cuối cùng! Ví dụ, cho đến nay chúng tôi có thể đã lấy được chuỗi"123 -pid 456 -pid 789 -pid "
.
Sau đó, chúng tôi chỉ sử dụng sed
để loại bỏ 6 ký tự cuối cùng của dấu phân cách.
| sed 's/.\{6\}$//'`
Chúng tôi sẵn sàng chuyển kết quả cho top
:
top -pid `...`