2013-04-21 67 views
4

我寫一個bash腳本,我使用排序的整數值

ps -e -o %cpu

命令。

我想輸出的排序%cpu值(降序)。怎麼做? 我知道我應該使用排序命令,但我不知道如何。

+1

您是否在尋找一些簡單的'ps -e -o%cpu |排序-r'? – tessi 2013-04-21 08:48:58

回答

8
ps -e -o %cpu | sort -nr 

n爲數字,r反向。如果你還想刪除標題:

ps -e -o %cpu | sed '1d' | sort -nr 
+0

還有一個問題。我想使用讀取命令,但不必點擊返回按鈕(輸入)結束。 可以說......一個腳本正在運行,如果用戶按下鍵盤上的'q'按鈕,腳本將結束 – user1926550 2013-04-21 09:12:32

+1

'while read -n1 next;做[$ next =='q'] && break; done' – perreal 2013-04-21 09:16:41

1

ps有一個內置的選項,根據任何選擇的字段對其輸出進行排序。您可以使用

ps k -%cpu -e -o %cpu 

這裏,k各種基於場的輸出提供,-%cpu是它的降序排列。

如果您在排序字段前面省略了-,那麼它將按升序排序。 另外請注意,你可以給它的多個排序字段:

ps k -%cpu,-%mem -e -o %cpu,%mem 

這將輸出排序(按降序排列爲兩者)首先要根據%cpu場和第二基於%mem場。