while true; do
# 记录当前时间(格式:年-月-日 时:分:秒)
TIME=$(date +"%Y-%m-%d %H:%M:%S")
# 1. 读取电量(仅屏蔽错误输出,保留正常值)
CAP=$(cat /sys/class/power_supply/battery/capacity 2>/dev/null || echo "未知")
# 2. 读取电压(nV → mV,容错处理)
VOL_RAW=$(cat /sys/class/power_supply/battery/voltage_now 2>/dev/null || echo 0)
VOL=$(( VOL_RAW / 1000 )) # 正确换算:nV ÷ 10^3 = mV
[ $VOL_RAW -eq 0 ] && VOL="未知" # 无数据时显示未知
# 3. 读取电流(nA → mA,容错处理)
CUR_RAW=$(cat /sys/class/power_supply/battery/current_now 2>/dev/null || echo 0)
[ $CUR_RAW -eq 0 ] && CUR_MA="未知" # 无数据时显示未知
# 4. 输出到屏幕 + 追加到日志(变量正确引用)
echo "[$TIME] CAP:$CAP%,VOL:$VOL mV,CUR:$CUR_RAW mA"
echo "[$TIME] CAP:$CAP%,VOL:$VOL mV,CUR:$CUR_RAW mA" >> battery_chongdian.log
# 间隔1秒刷新
sleep 1
done
使用方法:
直接输入上述命令,会在当下目录生成battery_chongdian.log,实时数据会记录在其中,停止监控:按Ctrl+C。
注意事项:
- 部分设备的电池路径可能是
/sys/class/power_supply/BAT0或BAT1,可根据实际情况修改BATTERY变量 - 某些嵌入式设备可能没有
current_now或voltage_now文件,脚本会自动显示 "未知" - 日志文件会持续增大,可定期清理