使用bash中的top程序将cpu时间提取到变量中

使用bash中的top程序将cpu时间提取到变量中,bash,time,cpu,Bash,Time,Cpu,我在bash脚本中有一个任务,试图测量按名称传递到脚本中的进程所用的cpu时间。我可以找到进程id并将其传递给bash中的顶级程序。然而,我还没有弄明白如何从顶层程序中提取cpu时间。例如: top正在打印: top - 00:57:07 up 6:06, 2 users, load average: 0.46, 0.31, 0.55 Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie %Cpu(s):

我在bash脚本中有一个任务,试图测量按名称传递到脚本中的进程所用的cpu时间。我可以找到进程id并将其传递给bash中的顶级程序。然而,我还没有弄明白如何从顶层程序中提取cpu时间。例如:

top正在打印:

top - 00:57:07 up  6:06,  2 users,  load average: 0.46, 0.31, 0.55
Tasks:   1 total,   1 running,   0 sleeping,   0 stopped,   0 zombie
%Cpu(s):  3.7 us,  0.8 sy,  0.0 ni, 94.6 id,  0.9 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem:   1928720 total,  1738072 used,   190648 free,    57184 buffers
PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
3337 amarkovi  20   0  372m  31m  10m R   0.7  1.7  13:28.74 chromium-browse 
我想从这里得到的是要分配给变量的时间+字段,这样我就可以把时间加起来,自己打印出来

我是bash脚本的noob,所以请耐心等待


谢谢,

因为这是一项任务,我不想破坏所有的乐趣:D.我只想给你指出一些可以帮助你努力的命令:
sed
awk
cut
。有了这3个你可以用很多方法解决它,享受吧

您必须使用
top
?使用
ps
为您提供所需的字段,然后使用
grep
选择所需的流程,应该会简单得多(一旦您找到正确的选项)。

我不必使用top。我可以使用ps,但我真的不理解输出修饰符以及如何将时间值引入变量。我是一名程序员,这个shell选项非常混乱。是用ps-p(pidof md)的,它给我打印出来的时间。为了只显示时间并将值分配给变量,需要使用哪些修饰符。得到了ps-o time-p pid,现在我需要剪切并保存它:)^^跳过标题,使用
ps-otime=-p pid