Đâ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: -pidnếu không có javaquy 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 ' topchỉ 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 awkkế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 `...`