LINUX.ORG.RU

взять максимальное значение sensors

 


0

1
v=0.0
cur=$(sensors | awk '/^Core /{++r; gsub(/[^[:digit:]]+/, "", $3); s+=$3} END{print s/(10*r)}')
res=$(bc -l <<<"${cur}")
# if [[ ${res} -ge ${v} ]]; then
#     ${v}=${res}
# fi
# echo ${v}
echo ${res}

тут берется среднее, может лучше взять максимальное значение по любому из ядер? Цель: в панельку добавить максимальное значение температуры. Как это правильно сделать?

★★★

sort /sys/class/hwmon/hwmon*/{,device/}temp*_input

anonymous
()
res=$(bc -l <<<0.0)
while :
do
      cur=$(sensors | awk '/^Core /{++r; gsub(/[^[:digit:]]+/, "", $3); s+=$3} END{print s/(10*r)}')
      cur=$(bc -l <<<"${cur}")
      if (( $(echo "${cur} > ${res}" |bc -l) )); then
          res=${cur}
      fi
      echo ${res}
      sleep 1
done

как можно более элегантно это переписать?

serg002 ★★★
() автор топика
Ответ на: комментарий от serg002

как можно более элегантно это переписать?

У вас же получилось максимальное за всё время запуска программы. То есть у вас вопрос не по bash и даже не по awk/bc на самом деле, а вопрос - как программировать вообще. Задача - найти максимальное значение из входных данных - самая простая из того, что изучают на информатике.

vodz ★★★★★
()

а покажи выхлоп sensors. А то у меня нет ни одной строки, которая начинается на Core.

ubik
()
Ответ на: комментарий от serg002

Если вам просто максимальное Core temp из текущего вывода sensors, то как-то так:

sensors | awk 'BEGIN{m=0}/^Core /{gsub("[^[:digit:].]","",$3); if(m<$3) m=$3}END{print m}'
А если максимальное с момента запуска программы, то там проще из awk вызывать sensors...

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.