Преобразование температуры процессора Цельсия в Фаренгейт

Я редактирую тему Конки. Я хотел бы, чтобы он выдавал температуры процессора в градусах Фаренгейта вместо Цельсия.

В файле ~/.conkyrc команда sensors | grep 'Core 0' | cut -c18-19 используется для определения температуры в градусах Цельсия для первого ядра процессора. Я хочу использовать bc, чтобы вычислить это (дайте ему outputvalue*9/5+32).

Проблема в том, что bc хочет просто абсолютные значения, и я не вижу возможности передать его вывод программы. Если я попытаюсь использовать что-то вроде temp=$(sensors | grep 'Core 0' | cut -c18-19) & echo 'temp*9/5+32' | bc, оно заканчивается тем, что дает мне 32, потому что он регистрирует «temp» как 0.

1
задан 22 July 2014 в 14:14

2 ответа

Вам нужно echo $temp*9/5+32 | bc. Переменные имеют префикс $ и не могут находиться внутри одинарных кавычек.

5
ответ дан 25 May 2018 в 03:33
  • 1
    Оба этих ответа верны! Это тоже работает, но у изготовителя4 меньше репутации. Благодаря! – WindowsEscapist 9 December 2012 в 09:30
  • 2
    @WindowsEscapist, его ответ также является более прямым ответом на ваш вопрос, я просто хотел объяснить, что не так с вашим подходом. – psusi 9 December 2012 в 09:33
  • 3
    Казалось, что это был способ превратить выключатель. Я наткнулся на различные методы в моих исследованиях, включая использование awk-скриптов, которые опросили сенсорный модуль напрямую. Это, безусловно, мощный способ сделать это, но, возможно, немного сложнее, чем это оправдано. – fabricator4 9 December 2012 в 10:34
  • 4
    Он также хотел бы && вместо &, чтобы значение temp было израсходовано до , вызвав bc – glenn jackman 10 December 2012 в 02:44
  • 5
    @psusi Я думаю, что на самом деле я буду использовать это вместо switch = p. Спасибо за ответ! – WindowsEscapist 10 December 2012 в 03:49

Получите ваш $ temp и предположив / bin / bash, почему бы просто не сделать это:

echo $[(${temp}*9/5)+32]
-1
ответ дан 25 May 2018 в 03:33

Другие вопросы по тегам:

Похожие вопросы: