使用bash中的top程序将cpu时间提取到变量中
我在bash脚本中有一个任务,试图测量按名称传递到脚本中的进程所用的cpu时间。我可以找到进程id并将其传递给bash中的顶级程序。然而,我还没有弄明白如何从顶层程序中提取cpu时间。例如: top正在打印:使用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):
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