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"