尝试获取Bash中的CPU总使用率

用户名

我正在尝试通过以下方式获取CPU的总负载:

IDLE=$(mpstat | grep "all" | cut -c 92-)

CPULD=$(expr 100 - $IDLE)

echo $CPULD

但它总是返回:

expr: non-integer argument on the second line. 

我环顾四周,每个人都说整数将在字符串中自动识别,但似乎不起作用。

编辑:对于那些希望看到我完整且正在工作的脚本的人,请访问这里:http : //pastebin.com/cFQzz4Up

血红素

bash(和expr)不能执行浮点运算,您需要借助bc

例如 :

$ IDLE=$(mpstat | grep "all" | cut -c 92-)

可以说$IDLE是77.25。

现在您需要bc

$ IDLE=77.25

$ CPULD="$(bc <<<"100 - $IDLE")"

$ echo "$CPULD"
22.75

bc 对文件进行操作,因此我们可以通过STDIN传递操作字符串,尽管我在这里更喜欢使用string:

$ echo "100 - 45.34" | bc
54.66

$ bc <<<"100 - 45.34"
54.66

换句话说,要获得IDLE%的CPU,mpstat | grep "all" | cut -c 92-您可以执行以下操作:

mpstat | grep -Po 'all.* \K[^ ]+$'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章