
No sé nada de scripts de shell, pero tengo esto
cat /sys/class/power_supply/BAT0/power_now
lo que me da la salida en milivatios, que me gustaría formatear como vatios y usar en el reloj
watch -t -n 5 cat /sys/class/power_supply/BAT0/power_now
Respuesta1
Puedes usar bc
(con la bandera para hacer división en coma flotante):
echo "$(cat /sys/class/power_supply/BAT0/power_now) / 1000" | bc -l
Respuesta2
Siempre puedes recurrir a awk para analizar archivos y realizar cálculos:
awk -F '=' '/POWER_SUPPLY_POWER_NOW/{print $2/1000}' /sys/class/power_supply/BAT0/power_now
Esto funciona utilizando =
como separador de columnas. El formato típico de awk es realizar acciones en {}
líneas que coinciden con el patrón en //
. Entonces, para la línea que tiene POWER_SUPPLY_POWER_NOW
, saque la columna 2 ( $2
) e imprímala después de dividirla por 1000
.
En cuanto a hacer eso con watch
, puede ser un poco difícil de usar.debido a citas. Sugeriría ejecutarlo como:
watch "awk -F '=' '/POWER_SUPPLY_POWER_NOW/{print $2/1000}' /sys/class/power_supply/BAT0/power_now"