我怎样才能使 CPU 速度达到 *.** GHz?

我怎样才能使 CPU 速度达到 *.** GHz?

我目前习惯indicator-sysmonitor在系统托盘中查看 CPU 和 RAM 百分比。但我想添加我的 CPU 速度。现在我知道有多个命令(例如lscpu | grep "CPU-frequentie"(Dutch) )可以获取 CPU 速度,但我希望以这样的方式:2.85 GHz。

我怎样才能将 2850.153 这样的输出改为 2.85 GHz 这样的输出?

答案1

您可能会发现以下是一个较短的示例:

#!/bin/sh
lscpu |awk -F : '($1=="CPU MHz") {printf "%3.2fGHz\n", $2/1000}'

请注意,在我的系统上,在 ubuntu 服务器 16.04(64 位)上使用 AMD CPU 和 lscpu 版本 2.27.1,输出中有以下几行:

CPU MHz:               4000.000
CPU max MHz:           4000.0000
CPU min MHz:           1400.0000

awk 命令使用“:”作为字段分隔符。它会查找以“CPU MHz”开头的行,然后使用 3.2 格式(三位有效数字,两位小数)简单地打印 1000 以上的值(将 MHz 转换为 GHz)。

从你的问题来看,你似乎在寻找 lscpu 输出中的“CPU-frequentie”。我不知道你的 lscpu 输出是什么样子的,但我假设你可能需要在 awk 行中用“CPU-frequentie”替换“CPU MHz”

为了完整起见,我在系统上得到的输出是:

4.00GHz

答案2

经过一些实验,我编写了一个脚本,返回 3.12GHz 或 2.80GHz 之类的值。它强制输出为 X.XXGHz。

首先,我使用了一个脚本这个答案

然后,我编写了这个脚本:

#!/bin/bash

speed=$(div $(lscpu | grep CPU-frequentie | awk '{print $3;}' | cut -d'.' -f1) 1000 | awk '{print substr($1,2); }' | cut -c -4)

if [ ${#speed} -ge 4 ]; then :
else speed=$speed"0"
fi

echo $speed"GHz"

相关内容