我无法获得所有pid的CPU%使用率,而不知道任何程序名称。
我觉得我接近解决方案,这是我到目前为止所做的:
for line in $(pgrep -f chrome); \
do echo -n $line" - "; \
ps -p $line -o %cpu | sed -n 2p | sed 's/ //'; done
在这个例子中,我只获得了所有chrome pid ..在下一步中我想要所有执行pid。
答案 0 :(得分:0)
您可以单独使用top
命令轻松完成此操作。
要按CPU百分比(降序)排序,您可以使用top -o -cpu
答案 1 :(得分:0)
如果您出于某种原因不想使用top,我可以考虑采用其他几种方法。
> ps -e -o "%p-%C"
或者如果您想在脚本中执行此操作(或者可以再次解析ps或检查/proc/pid/stat
是否使用cpu)
#!/bin/bash
shopt -s extglob
for line in /proc/+([0-9]); do
echo -n "${line##*/}- "
ps -p "${line##*/}" -o %cpu | sed -n 2p | sed 's/ //'
done
哪里
shopt -s extglob
在bash +([0-9])
匹配包含1位或多位数字的所有文件${line##*/}
删除所有内容,包括最后一个/
字符