
Я вообще не разбираюсь в скриптах оболочки, но у меня есть это
cat /sys/class/power_supply/BAT0/power_now
что дает мне выходную мощность в милливаттах, которую я хотел бы отформатировать как ватты и использовать в часах
watch -t -n 5 cat /sys/class/power_supply/BAT0/power_now
решение1
Вы можете использовать bc
(с флагом для выполнения деления с плавающей точкой):
echo "$(cat /sys/class/power_supply/BAT0/power_now) / 1000" | bc -l
решение2
Вы всегда можете прибегнуть к awk для анализа файла и выполнения вычислений:
awk -F '=' '/POWER_SUPPLY_POWER_NOW/{print $2/1000}' /sys/class/power_supply/BAT0/power_now
Это работает при использовании =
в качестве разделителя для столбцов. Типичный формат awk — выполнять действие в {}
для строк, которые соответствуют шаблону в //
. Так, для строки, которая содержит POWER_SUPPLY_POWER_NOW
, вынуть столбец 2 ( $2
) и вывести его после деления на 1000
.
Что касается того, как это сделать с помощью watch
, то это может быть немного сложно использоватьиз-за кавычек. Я бы предложил запустить его так:
watch "awk -F '=' '/POWER_SUPPLY_POWER_NOW/{print $2/1000}' /sys/class/power_supply/BAT0/power_now"