我有一个bash脚本,它使用ps命令来获取内存百分比,如下所示:
g_var_mem=$(ps -aux | grep myproc | grep -v grep | awk '{print $4}')
对于我的特定过程,输出为0.3。
当我使用 ShellCheck 检查脚本时,我收到一条 SC2009 消息,内容为“考虑使用pgrep而不是gps ps输出。”
是否有使用pgrep获得内存百分比的方法?还是可以摆脱此警告的另一种方式?
答案 0 :(得分:1)
恕我直言,您无需将grep
与awk
一起使用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='
致谢!