打印正确的 MHz 或 GHZ 数取决于 CPU 缩放比例
Print correct MHz or GHZ number depends of CPU scaling
我有这个脚本可以获取 RPi
当前的 cpu 速度
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq | awk '{if($NF+0>1000000)printf "%.1f GHz\n",$NF/10000; else printf "%.f MHz\n",$NF}'
结果
pi@pi-hole:~ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq | awk '{if($NF+0>1000000)printf "%.1f GHz\n",$NF/10000; else printf "%.f MHz\n",$NF}'
600000 MHz
pi@pi-hole:~ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq | awk '{if($NF+0>1000000)printf "%.1f GHz\n",$NF/10000; else printf "%.f MHz\n",$NF}'
150.0 GHz
我想 convert/display 输出为 600 MHz
或 1.5 GHz
(为了适合 6 位数字取决于缩放比例)。我能够始终以 MHz 显示,但是当 CPU 超过 999 MHz 时,由于多了一位数字,它会破坏我的脚本布局。
抱歉这个问题,但我是 bash 的新手。
谢谢!
使用 GNU awk:
awk 'length==6{printf("%.0f MHz\n", [=10=]/10^3); next} length==7{printf("%.1f GHz\n", [=10=]/10^6)}' /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
输出:
600 MHz
750 MHz
1.0 GHz
1.5 GHz
我有这个脚本可以获取 RPi
当前的 cpu 速度cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq | awk '{if($NF+0>1000000)printf "%.1f GHz\n",$NF/10000; else printf "%.f MHz\n",$NF}'
结果
pi@pi-hole:~ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq | awk '{if($NF+0>1000000)printf "%.1f GHz\n",$NF/10000; else printf "%.f MHz\n",$NF}'
600000 MHz
pi@pi-hole:~ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq | awk '{if($NF+0>1000000)printf "%.1f GHz\n",$NF/10000; else printf "%.f MHz\n",$NF}'
150.0 GHz
我想 convert/display 输出为 600 MHz
或 1.5 GHz
(为了适合 6 位数字取决于缩放比例)。我能够始终以 MHz 显示,但是当 CPU 超过 999 MHz 时,由于多了一位数字,它会破坏我的脚本布局。
抱歉这个问题,但我是 bash 的新手。 谢谢!
使用 GNU awk:
awk 'length==6{printf("%.0f MHz\n", [=10=]/10^3); next} length==7{printf("%.1f GHz\n", [=10=]/10^6)}' /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
输出:
600 MHz 750 MHz 1.0 GHz 1.5 GHz