通知-发送无限通知

通知-发送无限通知

我编写了一个简短的脚本,用于在电池电量低于 25% 和高于 75% 时通知自己。我使用通知发送来发送通知并播放警报声音以通知用户事件。我面临的问题是我想发送持续通知,并不断播放警报声音。例如,如果电池电量超过 75% 并且交流电仍插着,则通知必须持续,警报声音会不断播放,直到用户拔掉交流电。同样,如果电池电量低于 25%,脚本也会执行相同的操作。

我遇到的问题是,使用通知发送时,通知会堆积在之前的通知上,我不知道如何显示持续通知并在后台播放持续的警报声音。

下面附上了图像和代码以便更好地理解我的问题。

通过notify-send发送通知

#!/bin/bash
while true
    do
        export DISPLAY=:0.0
        battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'`
        ac_adapter=$(acpi -a | cut -d' ' -f3 | cut -d- -f1)
    if [ "$ac_adapter" = "on" ]; then
                if [ $battery_level -ge 75 ]; then              #check if the battery level is over 75%
            while :
                do
                notify-send -u critical "Please unplug your AC adapter" "Battery level: ${battery_level}% (charged above 75%)" -i battery-full-charged; play /home/ali/Music/alarm.wav
                sleep 1
                ac_adapter=$(acpi -a | cut -d' ' -f3 | cut -d- -f1)
                if [ "$ac_adapter" = "off" ]; then
                    break              #Abandon the loop.
                fi
                done    

             fi
        else
                if [ $battery_level -lt 25 ]; then              #check if the battery level is less than 25%
            while :
                do
                    notify-send -u critical "Please plug your AC adapter" "Battery level: ${battery_level}% (charge below 25%)" -i battery-caution; play /home/ali/Music/alarm.wav
                sleep 1
                ac_adapter=$(acpi -a | cut -d' ' -f3 | cut -d- -f1)
                if [ "$ac_adapter" = "on" ]; then
                    break              #Abandon the loop.
                fi
                done    

             fi
        fi
      sleep 1                                             #wait for 1 seconds before checking again

    done


相关内容