在 sh 中捕获 CPU 行的 /proc/stat 的 4 个元素

Capture 4 Element of /proc/stat of CPU line in sh

我无法将 CPU[3] 捕获到 shell 脚本中的 IDLE 变量 (/bin/sh)

代码片段如下:-

while true; do
      CPU=$(sed -n 's/^cpu\s//p' /proc/stat)
      **IDLE=$CPU[3]**                                   # Just the idle CPU time.
      for VALUE in ${CPU} ;
      do
       TOTAL=$((TOTAL+VALUE))
       printf "%s \n\n" $VALUE
       sleep 1
       printf "%s \n" $IDLE
      done
      sleep 0.1
 done

您可以尝试使用以下脚本从 sed 命令中提取特定的字符串元素。

#!/bin/sh

CPU=$(sed -n 's/^cpu\s//p' /proc/stat) 
IDLE=$((sed -n 's/^cpu\s//p' /proc/stat)| (cut -d' ' -f5))
printf "IDLE Check %s \n" $IDLE
printf "CPU: %s \n" $CPU

但是我看到提取的值增加了一个,我会研究这个并在一段时间内更新,祝你好运!!!

我得到如下输出:

IDLE Check 286857 /*value is incremented by 2 , i will update in while on this */
CPU: 32898 
CPU: 6 
CPU: 8128 
CPU: 286855  /* This value is to be extracted as example */
CPU: 27052 
CPU: 0 
CPU: 462 
CPU: 0 
CPU: 0 
CPU: 0