Você pode usar bc
(com o sinalizador para fazer a divisão de ponto flutuante):
echo "$(cat /sys/class/power_supply/BAT0/power_now) / 1000" | bc -l
Eu não sei nada sobre shell script, mas eu tenho isso
cat /sys/class/power_supply/BAT0/power_now
que me dá a saída em miliwatts, que eu gostaria de formatar como watts e usar no watch
watch -t -n 5 cat /sys/class/power_supply/BAT0/power_now
Você sempre pode recorrer ao awk para analisar o arquivo e executar cálculos:
awk -F '=' '/POWER_SUPPLY_POWER_NOW/{print $2/1000}' /sys/class/power_supply/BAT0/power_now
Isso opera usando =
como separador para colunas. O formato awk típico é executar a ação em {}
para linhas que correspondem ao padrão em //
. Portanto, para a linha que tem POWER_SUPPLY_POWER_NOW
, remova a coluna 2 ( $2
) e imprima-a após dividir por 1000
.
Quanto a fazer isso com watch
, pode ser um pouco difícil usar devido a citações . Eu sugiro executá-lo como:
watch "awk -F '=' '/POWER_SUPPLY_POWER_NOW/{print $2/1000}' /sys/class/power_supply/BAT0/power_now"