我目前习惯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"