Installieren Sie das acpiPaket. Fügen Sie dies nun ein return0whencharging.shund machen Sie es ausführbar:
#!/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
Wenn echo -e "\a"ein Geräusch ertönt, starten Sie dies, wenn Sie den Batteriestatus anzeigen möchten:
watch --beep return0whencharging.sh
Wenn es keinen Ton machen oder wollen Sie eine Benachrichtigung und einen besseren Alarm als das, was Uhr zur Verfügung stellen kann, installieren libnotify-binund mpvund diese stattdessen verwenden:
while return0whencharging.sh; do sleep 1; done; notify-send "Finished charging" && mpv -loop /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga
Erklärung :
Wenn Sie auf der Manpage nach grep suchen , können Sie sehen, dass -vdie Übereinstimmung und damit der Rückgabe- / Statuscode umgekehrt wird. -Ebedeutet, es ist ein regulärer Ausdruck. Das [\t ]in der Regex (regulärer Ausdruck) bedeutet "Tabulator oder Leerzeichen". Der folgende Stern bedeutet "Tabulator oder Leerzeichen 0 oder mehrmals". Das nachfolgende "$" bedeutet, dass es mit dem Zeilenende übereinstimmen sollte. Das letzte grepbedeutet, dass Zeilen, die NICHT mit einem ":" enden, eine beliebige Anzahl von Tabulatoren oder Leerzeichen und dann "Laden" und das Ende der Zeile grepmit dem Statuscode 0 beendet werden. Dies bedeutet, dass grep1 zurückgegeben wird, solange sich der Computer befindet Laden. Der ifführt seinen ersten Zweig aus, wenn der Statuscode 0 ist.grepexit 1wenn grep 0 verlässt und exit 0wenn grep ungleich Null existiert.