Xubuntu 电池警报

Xubuntu 电池警报

我需要写一个脚本,但超出了我的能力范围。所以我向那些在命令行方面更有能力的人寻求帮助。

我需要一个脚本,每分钟检查一次电池电量百分比,如果低于某个阈值则发出信号。

我使用以下命令找到我的百分比:

upower -i /org/freedesktop/UPower/devices/battery_BAT1| grep -E “百分比”

我希望当它低于 25% 时发出信号。

我只会使用这个脚本来“放电”会话,理想的情况是使用一条长的命令行,这样会更方便,因为关闭终端也会中断电池检查。

问题:

  • 使用 crontab 并关闭终端是否也会关闭打开的 cron 进程?使用循环是否更好do while

提前感谢大家!

答案1

我确信以下脚本不是最佳的,甚至可能存在我自己看不到的错误。我在编程方面非常业余,我只是把它当作一种爱好。 我很乐意接受批评或建议!:)

脚本使用acpi

#!/bin/bash

# A script to make an alarm go off at desired battery thresholds


### Variables

BAT=$(acpi | grep -o [[:digit:]][[:digit:]] | head -1)
LOW_LVL=35
CHARG=$(acpi | grep -o "Charging")
CHARGING=0

### Functions

charging()
{
    ### Checks wether the computer is charging (1) or not (0) 
    if [ "$CHARG 1" = "Charging 1" ]; then
        CHARGING=1
    else CHARGING=0 
     fi
    echo $CHARGING
}

alarm_connect()
{
    notify-send -i /usr/share/icons/gnome/48x48/status/battery-low.png "Battery under 35%" "Charge it"
    paplay /usr/share/sounds/freedesktop/stereo/complete.oga
}


### Main

while true
do
    if [  $(charging) = 0   ]; then
        if [ $BAT -le $LOW_LVL ]; then
            $(alarm_connect)
             fi

    sleep 1m
done

脚本使用upower

#!/bin/bash

# A script to make an alarm go off at desired battery thresholds

### Variables

BAT=$(upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage" | grep -o [[:digit:]][[:digit:]])
LOW_LVL=25
CHARG=$(upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage" | grep -o "\ charging")
CHARGING=0

### Functions

charging()
{
    ### Checks wether the computer is charging (1) or not (0) 
    if [ "$CHARG" = " charging" ]; then
        CHARGING=1
    else CHARGING=0 
     fi
    echo $CHARGING
}

alarm_connect()
{
            paplay /usr/share/sounds/freedesktop/stereo/complete.oga
}

### Main

while true
do
    if [  $(charging) = 0   ]; then
        if [ $BAT -le $LOW_LVL ]; then
            $(alarm_connect)
        fi
    fi

    sleep 60
done

您可以根据需要替换:

  • LOW_LVL用于修改您希望闹钟响起的电池电量百分比的变量。
  • 随 一起出现的声音和图标notify-send,只需检查它们的路径,您就可以在那里找到多种多样的选项。
  • 时间sleep。例如:sleep 60= sleep 1m

使用 crontab 并关闭终端也会关闭打开的 cron 进程吗?

不,关闭终端不会停止cron作业。因此,如果您想这样使用它,请从终端运行它,并在完成后关闭它。

相关内容