使用pgrep而不是ps获取内存百分比使用率

时间:2018-12-07 16:07:28

标签: bash memory awk grep ps

我有一个bash脚本,它使用ps命令来获取内存百分比,如下所示:

g_var_mem=$(ps -aux | grep myproc | grep -v grep | awk '{print $4}')

对于我的特定过程,输出为0.3。

当我使用 ShellCheck 检查脚本时,我收到一条 SC2009 消息,内容为“考虑使用pgrep而不是gps ps输出。”

是否有使用pgrep获得内存百分比的方法?还是可以摆脱此警告的另一种方式?

2 个答案:

答案 0 :(得分:1)

恕我直言,您无需将grepawk一起使用2次,而应使用单个awk

ps -aux | awk '!/awk/ && /your_process_name/{print $4}'

上述代码的解释:

ps -aux | awk '                      ##Running ps -aux command and passing its output to awk program here.
!/awk/ && /your_process_name/{       ##Checking condition if a line NOT having string awk AND check string(which is your process name) if both conditions are TRUE then do following.
  print $4                           ##Printing 4th field of the current line here.
}'                                   ##Closing condition BLOCK here.

答案 1 :(得分:0)

您也可以这样做:

ps -p $(pgrep YOURPROCESSNAME) -o '%mem='

致谢!