배터리가 90% 이상, 20% 이하, 10% 이하일 때 알려주는 스크립트를 원합니다. 전체 화면 모드에서 영화를 볼 때 표시되는 알림을 받을 수 있도록 알림 전송 대신 zenity를 사용하기 위해 다음을 조합했습니다. 내가 결코 알아낼 수 없었던 것은 "ge"와 "le"만으로 숫자의 범위(11%-20%)를 표현하는 방법입니다. 플러그를 꽂거나 뽑은 후에 알림을 중지하는 것도 좋습니다. 이것이 내가 지금까지 가지고 있는 것입니다:
#!/bin/bash
#Battery level notification
while true
do
battery_level=$(acpi -b | grep -P -o '[0-9]+(?=%)')
if [ "$battery_level" -ge 90 ]; then
zenity --info --title="Battery is at or above 90%" --text="Unplug adapter now" --icon-name='battery' --height=50 --width=200
fi
sleep 180 # 180 seconds or 3 minutes
if [ "$battery_level" -le 20 ]; then
zenity --info --title="Battery is at or below 20%" --text="Plug in adapter now" --icon-name='battery' --height=50 --width=200
fi
sleep 120 # 120 seconds or 2 minutes
if [ "$battery_level" -1e 10 ]; then
zenity --warning --title="Battery is at or below 10%" --text="PLUG IN ADAPTER NOW!!!" --icon-name='battery' --height=50 --width=200
fi
sleep 60 # 60 seconds or 1 minute
done
위에서 내가 무엇을 하고 있는지 전혀 모른다는 것이 분명해졌습니다! (이 글이 어떤 언어로 작성되었는지조차 모르겠습니다.) Linux Mint 19.2 Cinnamon을 사용합니다.
답변1
이것은 당신에게 도움이 될 것입니다:
#!/bin/bash
#Battery level notification
while true
do
battery_level="$1"
if [ "$battery_level" -ge 90 ]; then
#Battary level is 90 or higher
zenity --info --title="Battery is at or above 90%" --text="Unplug adapter now" --icon-name='battery' --height=50 --width=200
elif [ "$battery_level" -le 20 ] && [ "$battery_level" -ge 11 ]; then
#Battary level is between 11 and 20
zenity --info --title="Battery is at or below 20%" --text="Plug in adapter now" --icon-name='battery' --height=50 --width=200
elif [ "$battery_level" -le 10 ]; then
#Battary level is less or equal 10
zenity --warning --title="Battery is at or below 10%" --text="PLUG IN ADAPTER NOW!!!" --icon-name='battery' --height=50 --width=200
fi
sleep 60 # 60 seconds or 1 minute
done
문자를 사용하여 여러 조건을 확인할 수 있습니다 &&
. 그리고 elif
else if를 나타냅니다. 첫 번째 조건이 작동하지 않으면 두 번째 조건을 확인하고, 그것도 작동하지 않으면 세 번째 조건을 확인하는 식으로 진행됩니다.