bioid
@bioid

Как сравнить значения в строках вывода и по условию выполнить скрипт?

Вывожу значения температуры проца командой:
sensors | grep "Core *" | awk '{print int($3)}'
На выходе:
37
39
38
36

Как сравнить их со значением "60" и если хотя бы одно значение больше 60, то выполнить определенный sh-скрипт?
  • Вопрос задан
  • 79 просмотров
Решения вопроса 2
Например, так
sensors | grep "Core *" | awk '{print int($3)}' | xargs -L 1 -i bash -c "[ {} -gt 37 ] && echo '{} больше 37'"


И с вызовом скрипта будет так
sensors | grep "Core *" | awk '{print int($3)}' | xargs -L 1 -i bash -c "[ {} -gt 60 ] && ./too_hot.sh'"
Ответ написан
Комментировать
xotkot
@xotkot
хорошо есть и хорошо весьма
[[ $(sensors | awk '/Core/{i+=$3}END{print i/NR}') > 60 ]] && ./script.sh

немного сократил ваш изначальный поиск температуры сделав всё через один awk + сделал через среднюю температуру всех ядер а не одного конкретного, думаю так будет правильнее.

если вам всё же нужно не средняя а температура любого из ядер, то это довольно просто:
[[ $(sensors | awk '/Core/{print $3}') > 60 ]] && ./script.sh

при первом совпадении скрипт сработает
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы