我正在做的是一个 conky 小部件,我试图从主板上的传感器芯片获取电压读数来显示它。我正在获取电压读数并将其显示在小部件中,如下所示:
${execi 1 sensors -u | grep -w 'in6_input'|cut -c 14-32}
这将正确返回该输入行的值,即2.032
。然而,这是主板上分压器输出的参考电压,因为芯片上的输入无法直接处理超过 4V 的电压。不幸的是,该主板不进行数学计算并将其作为实际电压读数发送出去。所以我需要计算一下,让它回到 12.1V(大约是 BIOS 显示的值)。
我可以通过命令提示符进行数学计算,如下所示:
~$ twelve=$(sensors -u | grep -w "in6_input"|cut -c 14-32)
~$ echo "scale=3;$twelve*(67300/11300)" | bc -l
12.148
所以我要问的是
- 如何(如果可能的话)将其集成到 conky 模板中?**和
如何使输出只显示小数点后 3 位?
编辑:其中一个问题已经解决(谢谢steeldriver)。编辑标题以更具体地解决剩余问题。
答案1
awk
在这些情况下通常很有用,因为它非常强大,可以替换几个命令:
${execi 1 sensors -u | awk '/in6_input:/{printf "%.3f",$2*(67300/11300)}'}
$2
表示行中的第二个单词(按空格分割)。%.3f
是具有 3 位小数的浮点格式(在“.”之后)。