当我的笔记本电脑的电池开始充电/放电时,如何执行 bash 脚本?

当我的笔记本电脑的电池开始充电/放电时,如何执行 bash 脚本?

我有一个 conky 设置,可以显示电池电量。问题是,每当我将笔记本电脑插入充电器或从充电器上拔下时,我都需要运行 conky-startup 脚本才能使其正确显示。我发现这很麻烦(即使我设置了一个启动器,单击后即可运行该脚本),我想知道我需要做什么才能使脚本在我将笔记本电脑插入充电器或从充电器上拔下时运行。

答案1

这是一个非常简单的脚本,可以将其添加为启动应用程序并将持续运行。插入您想要在检测到电源方法变化时运行的命令,如注释中所述。

#!/bin/bash
# Author: Serg Kolo
# Date: June 17,2015
# Description:  this script detects changes in
# the powering method, and does something user
# specifies in appropriate field

on_ac_power
PREVIOUS=$(echo $?)

while [ 1 ]; do
    # check if we're on ac power or not
    on_ac_power
    CURRENT=$(echo $?)
    # check if previous values are current
    # are different. If they are
    # raise the flag.
    if [ $CURRENT -ne $PREVIOUS ]; then
        echo things changed
        # Insert commands you wanna run here 
        # in the space below this comment
        echo running custom stuff

        # when done: make current value previous
        # for future comparison
        PREVIOUS=$(echo $CURRENT )
    else
        # if previous values and current are same
        # it means we didn't switch from battery to
        # ac or vice versa; do nothing
        continue
    fi

    sleep 1
done

答案2

当您插入/拔出电源线时,/etc/pm/power.d 中的任何脚本都会在您插入时使用“true”参数运行,在您拔出时使用“false”参数运行。

在该文件末尾添加一些脚本应该可以使其运行。

如果您有很多脚本需要运行,您应该尝试添加如下行:

if [ -f /path/to/the/script ]; then
    . /path/to/the/script
fi

您可能需要确保 .../power.d/ 目录中的脚本可以通过以下方式执行:

cd /etc/pm/power.d/
chmod +x ./name_of_file 

欲了解更多信息请查看这个答案:如何在插入或拔出电源时运行脚本?

答案3

这是一个通用的方法:

#!/bin/bash

status="$(grep -Po '^charging\s+state:\s+\K.*$' /proc/acpi/battery/BAT0/state)"

if [[ $status = 'charging' ]]; then
    ##Charging, Do something

elif [[ $status = 'discharging' ]]; then
    ##Discharging, Do something

elif [[ $status = 'charged' ]]; then
    ##Charged, Do something

else
    ##Battery not found, Do something
fi
  • /proc/acpi/battery/BAT0/state包含电池的状态,BAT0如果电池名称与您情况不同,请更换

  • charging state:文件中以 开头的行包含电池的状态,无论是充电、放电还是已充电

  • 我们将该行的状态字符串保存在变量中status

  • 根据 的值status,我们可以做我们想做的事情。

相关内容