2013-02-23 27 views
0

我在bash腳本中有一項任務,試圖測量用於按名稱傳入腳本的進程的cpu時間。我可以找到進程ID並將其傳遞給bash中的頂級程序。但是,我還沒有想出如何從頂層程序中提取CPU時間。例如:在bash中使用頂級程序將cpu時間提取到變量中

頂部打印出:

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腳本的小菜鳥,所以請耐心等待。

謝謝,

回答

1

您是否需要使用top?它應該更加簡單(一旦你找出正確的選項),使用ps來給你所需的字段,然後使用grep來選擇你想要的進程。

+0

我不必使用top。我可以PS,但我真的不明白輸出修飾符以及如何將時間值變成一個變量。我是程序員,這個shell選項非常混亂。使用ps -p(pidof md),它使我的打印時間不夠。爲了只顯示時間和賦值給變量,使用什麼修飾符? – user1078259 2013-02-23 17:35:42

+0

得到了ps -o時間-p pid現在我需要將它剪切並保存:) – user1078259 2013-02-23 18:01:46

+0

^^跳過標題,使用'ps -otime = -p pid' – anishsane 2013-02-24 06:37:38

0

因爲這是一個assigment我不想破壞所有的樂趣:D。我只是指出你的一些命令可以幫助你的努力:sed,awkcut。有了這3,你可以用很多方式解決它,享受!