Zainstaluj acpipakiet. Teraz włóż to return0whencharging.shi zrób to:
#!/bin/sh
acpi -V
if cat /proc/acpi/battery/BAT1/state | grep "charging state" | grep -vE ":[\t ]*charging$"; then
exit 1
else
exit 0
fi
Jeśli echo -e "\a"wydaje dźwięk, zacznij to, gdy chcesz sprawdzić stan baterii:
watch --beep return0whencharging.sh
Jeśli nie ma żadnego dźwięku lub chcesz zawiadomienie i lepsze niż cokolwiek alarm zegarek może dostarczy, zainstaluje libnotify-bini mpvi używać zamiast tego:
while return0whencharging.sh; do sleep 1; done; notify-send "Finished charging" && mpv -loop /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga
Objaśnienie :
Jeśli spojrzysz na stronę man dla grep , zobaczysz, że -vodwraca dopasowanie, a zatem kod powrotu / statusu. -Eoznacza, że jest to wyrażenie regularne. [\t ]w regex (wyrażenie regularne) oznacza „kartę lub przestrzeń”. Następująca gwiazda oznacza „tabulator lub spacja 0 lub więcej razy”. Końcowy znak „$” oznacza, że powinien on pasować do końca linii. Ostatnia grepoznacza, że wiersze NIE kończą się „:”, dowolną liczbą tabulatorów lub spacji, a następnie „ładowaniem”, a koniec wiersza powinien grepzakończyć się kodem stanu 0. Oznacza to, że grepzwróci 1, o ile komputer jest ładowanie. ifWykona To pierwszy oddział, gdy kod stanu jest 0,grepexit 1kiedy grep kończy 0 i exit 0kiedy grep istnieje niezerowa.