bash - 将 cpu 温度的平均值作为一行脚本获取

标签 bash shell

我需要平均系统上四个 CPU 核心的温度。我使用以下命令获取各个核心的温度:
sysctl -a | awk '/temperature/ {print $2;}'

这会输出以下输出:

    53.0C
    53.0C
    52.0C
    52.0C

然后我将其传递给 sed 和 tr,并通过一些 script-fu 我最终得到了以下一行:

echo `sysctl -a | awk '/temperature/ {print $2;}' | sed s/C// | tr '\n' '+' | sed 's/\(.*\)+/\1/'` | bc`  

结果是:

210

我现在只需要划分 210/4以获得我的平均水平,但我对如何实现这一目标感到困惑,作为我已经酝酿的一句台词的延伸。由于其他一些限制,我需要将其保留为一句台词。

我确信有一种更简单的方法可以实现我所追求的目标,任何指示都会受到赞赏!

最佳答案

使用 awk:

sysctl -a | awk -F '[ C]' '/temperature/{sum+=$2} END{print sum/NF}'

输出:

52.5

参见:8 Powerful Awk Built-in Variables – FS, OFS, RS, ORS, NR, NF, FILENAME, FNR

关于bash - 将 cpu 温度的平均值作为一行脚本获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52687261/

相关文章:

linux - 我想用单独的文件夹存储最近 10 天的数据库备份

linux - bash 脚本中的 SIGINT

shell - 命令路径作为 shell 脚本中的变量

linux - 无法在 Unix 中捕获 SIGQUIT 信号

linux - 将命令输出附加到文件的每一行

shell - 从shell使用Processing-3.2.2

php - 我可以通过 unix shell 脚本在 Windows 中创建目录吗?

bash - 如何使用 bash 从 wttr.in curl 结果中获取当前平均温度?

bash - 将 ASCII 中的 Char 值保存在 bash 变量中

bash - ConEmu + Ubuntu Bash : How to open new tab in current directory