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.

3 Answers 3

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.
0
5

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

6
  • Both of these answers are correct! This works too but fabricator4 has less rep. Thanks! Dec 9, 2012 at 3: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 9, 2012 at 3: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. Dec 9, 2012 at 4:34
  • 2
    He would also want && instead of & so that the value of temp is calcucated before calling bc Dec 9, 2012 at 20:44
  • @psusi I think I'm actually going to use this instead of the switch =p. Thanks for the answer! Dec 9, 2012 at 21:49
0

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

echo $[(${temp}*9/5)+32]

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .