简单的脚本实现电量警告 | | [2008/01/14 15:22 | 分类: Linux » 脚本命令 | by oceanboo ]我笔记本的电池似乎一直有些问题,所以只要有条件用电源的地方就绝少用电池,于是造成了偶尔单独使用电池的时候,我常常都会忘记去查看电池的状态。

在 gnome 、xfce4 下都还好,总会放些 applet 在 panel 上提醒我电池是否快用光了,不过自从没有使用这些大块头的 DE 之后,我都出现过两次因为忘记在使用电池而直接把电池用光,自动关机的情况了。

所以写了一个小脚本,实现了电量低时弹出警告窗的功能,然后用 crontab 来循环执行,解决了这个问题。

警告窗口依赖一个小的命令 notify-send ,如果有 zenity (gnome-extra)也可以选择使用。
安装 notify-send:
# emerge -av libnotify
# apt-get install libnotify-bin

脚本内容:
引用#!/bin/bash
# 电池电量低时的警告脚本。

# 设置变量
ac_state=`/bin/grep on-line /proc/acpi/ac_adapter/ADP1/state`

# 程序主体
battery_warn(){
battery_state=`/bin/grep yes /proc/acpi/battery/BAT0/state`
remaining_capacity=$(grep 'remaining capacity' /proc/acpi/battery/BAT0/state | grep -o '[0-9]\+')
if [ -n "$battery_state" -a "$remaining_capacity" -le "300" ] # 电池使用状态以及电量低于 300 mAh 时逻辑与的判断
then
notify-send -u critical '警告' '电池电量即将用完,请及时充电。' # 警告对话框
#zenity --title="警告" --warning --text="电池电量即将用完,请及时充电。" # 使用 zenity 弹出警告
else
exit;
fi
}

# 判断是否使用 AC 电源
if [ -n "$ac_state" ]
then
exit;
else
battery_warn; # 执行主体的程序
fi

加入 crontab ,循环5分钟执行一次:
crontab -e
引用*/5 * * * * export DISPLAY=:0 && /bin/bash /home/oceanboo/Program/battery_warning
点击在新窗口中浏览此图片