Linux下读取电池功耗:双电池系统功率监控脚本需求
Bash脚本实现双电池功率监控
以下是满足需求的Bash脚本,同时解决功率值格式化和活跃电池判断的问题:
#!/bin/bash # 定义要监控的电池列表 BATTERIES=("BAT0" "BAT1") # 遍历每块电池处理数据 for bat in "${BATTERIES[@]}"; do power_file="/sys/class/power_supply/$bat/power_now" # 先检查文件是否可读取 if [[ ! -r "$power_file" ]]; then echo "⚠️ 无法读取电池 $bat 的功率数据" continue fi # 读取微瓦数值 power_microwatt=$(cat "$power_file") # 跳过功率为0的非活跃电池 if [[ "$power_microwatt" -eq 0 ]]; then continue fi # 转换为易读的瓦特(保留两位小数) power_watt=$(echo "scale=2; $power_microwatt / 1000000" | bc) # 输出结果 echo "当前活跃电池: $bat" echo "当前功率消耗: $power_watt W" done
功能说明
1. 功率值格式化处理
power_now文件输出的是**微瓦(μW)**单位,通过bc工具执行除法运算/ 1000000转换为瓦特(W)。scale=2参数控制结果保留两位小数,若需要整数或其他精度,修改该值即可(比如scale=0得到整数瓦特)。
2. 活跃电池自动判断
- 脚本遍历两块电池,自动跳过
power_now值为0的电池(对应未处于放电/使用状态的电池)。 - 如果存在双电池同时工作的场景(部分设备支持),脚本会分别输出两块电池的功率信息。
额外优化
- 增加了文件可读性检查,避免因权限不足或路径错误导致脚本异常。
- 输出信息简洁直观,便于快速查看当前状态。
内容的提问来源于stack exchange,提问作者AutisticAllosaurus
相关产品推荐
相关产品推荐

