18 如果一个程序有多个实例,运行pidof program将给出: `1 2 3` top -p接受以逗号分隔的参数:1, 2, 3。 这意味着top -p `pidof program`将不起作用: top: unknown argument '1' usage: top -hv | -bcisSH -d delay -n iterations [-u user | -U user] -p pid [,pid ...] 你能告诉我怎么做吗。我对awk,sed等不熟悉。 shell text-processing top — 舍邦 source
25 sed诸如此类的简单替代方法是tr: top -p $(pidof program | tr ' ' ',') tr 还可以轻松处理可变数量的空格: tr -s ' ' ',' 另外,如果有可用的话,pgrep可以在这里正常工作: top -p $(pgrep -d , program) 请确保在-d和之间留一个空格,,因为逗号是参数(分隔符)。 另外,请注意pgrep将返回“ program”的每个结果,因此,如果您有一个名为“ program-foo”的进程,则该进程也会被返回(因此名称为pgrep)。 — 史蒂文·D source 对于多个程序top -p $(pgrep -d, "(nginx|mysql)" ) — user2037659
3 这样可以很好地监视多个程序: top -p `pgrep -d, -f program1`, `pgrep -d, -f program2` — 里斯 source 更好地使用:top -p $(pgrep -d, "(nginx|mysql)" ) — user2037659
top -p $(pgrep -d, "(nginx|mysql)" )