4

I'm editing a Conky theme. I would like it to output the processor temperatures in degrees Fahrenheit instead of Celsius.

In the ~/.conkyrc file, the command sensors | grep 'Core 0' | cut -c18-19 is used to find the temperature in Celsius for the first processor core. I want to use bc to compute this (give it outputvalue*9/5+32).

Problem is, bc wants just absolute values, and I see no way to pass it program output. If I try to use something like temp=$(sensors | grep 'Core 0' | cut -c18-19) & echo 'temp*9/5+32' | bc, it ends up giving me 32 because it registers "temp" as a 0.

WindowsEscapist
  • 1,492
  • 2
  • 17
  • 42

3 Answers3

7

According to the Conky help, you can specify this in the config file ~/.conkyrc

Quote:

temperature_unit

  • Desired output unit of all objects displaying a temperature. Parameters are either "fahrenheit" or "celsius". The default unit is degree Celsius.
Jorge Castro
  • 73,907
fabricator4
  • 8,481
5

You need echo $temp*9/5+32 | bc. Variables are prefixed with a $ and can not be inside single quotes.

psusi
  • 38,171
  • Both of these answers are correct! This works too but fabricator4 has less rep. Thanks! – WindowsEscapist Dec 09 '12 at 03:30
  • @WindowsEscapist, his answer is also a more direct answer to your question, I just wanted to explain what was wrong with your approach. – psusi Dec 09 '12 at 03:33
  • It seemed like the conky switch was the way to do it. I came across various methods in my research including the use of awk scripts that poll the sensor module directly. It's certainly a powerful way to do it, but perhaps a little more complicated than is warranted. – fabricator4 Dec 09 '12 at 04:34
  • 2
    He would also want && instead of & so that the value of temp is calcucated before calling bc – glenn jackman Dec 09 '12 at 20:44
  • @psusi I think I'm actually going to use this instead of the switch =p. Thanks for the answer! – WindowsEscapist Dec 09 '12 at 21:49
  • @glennjackman, true... I missed that. – psusi Dec 09 '12 at 22:54
1

Get your $temp, and assuming /bin/bash why not just do this:

echo $[(${temp}*9/5)+32]
Braiam
  • 69,302
user304985
  • 21
  • 1