Я хочу создать скрипт оболочки, который будет запускаться каждую минуту заданием cron.Работа сценария будет заключаться в том, чтобы уведомить меня (не) подключить зарядное устройство в различных условиях:
, когда состояние батареи заряжается и она заряжена примерно на 80%, это напоминает мне отключить кабель.
когда батарея разряжается и заряжается примерно на 40%, это напоминает мне подключить кабель обратно.
Мой файл crontab:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
* * * * * /home/aleksa/charge.sh
# newline
Мой /home/aleksa/charge.sh
скрипт:
#!/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
RESPONSE="$(upower -i /org/freedesktop/UPower/devices/battery_BAT0)"
#if percentage is around 40%, and state is discharging
if echo "${RESPONSE}" | grep -E '38%|39%|40%|41%|42%' && echo "${RESPONSE}" | grep -w 'discharging'
then zenity --notification --window-icon=update.png --text "Connect charger";
fi
#if percentage is around 80%, and state is charging
if echo "${RESPONSE}" | grep -E '78%|79%|80%|81%|82%' && echo "${RESPONSE}" | grep -w 'charging'
then zenity --notification --window-icon=update.png --text "Disconnect charger";
fi
Я думаю, что проблема в сценарии, потому что япробовал разные вещи, чтобы определить причину проблемы:
- скрипт работает, когда он выполняется независимо от работы задания cron
- cron - я проверил его, добавив
date
ответ команды на файл каждую минуту - Я пытался без объявления переменной
RESPONSE
, и она все еще не работает