
toabi
Digitale Schlaftablette
Aus Gründen habe ich heute ein Bash Script geschrieben, dass mein Macbook nach einer bestimmten Anzahl von Minuten schlafen legt.
Die Zeit, bis die Schlaftablette aktiviert wird, wird als Parameter mitgegeben. Ein Aufruf wie
./sleep.sh 42
lässt den Computer in 42 Minuten einschlafen. Das funktioniert nur unter Mac OS X, da für das letztendliche Einschlafen Apple Script benutzt wird. Man kann diese Zeile (in der osascript vorkommt) aber einfach mit dem Befehl seiner Wahl ersetzen. Hier der Quellcode:
#!/bin/bash
if [[ $# -ne 1 ]]; then
echo 'sleep in x minutes | by @toabi'
echo "usage: $0 minutes"
else
case $1 in
*[!0-9]*)
echo 'ERROR: Argument is not an integer!'
exit 1
;;
*)
MINUTES=$1
SECONDS=$[$MINUTES * 60]
HOURS=`echo "scale=2; $MINUTES/60" | bc`
echo "Going to sleep in $MINUTES minutes ($HOURS h)"
sleep $SECONDS
echo 'Going to sleep NOW!'
osascript -e 'tell application "System Events" to sleep' #goto(bed)
;;
esac
fi
Es bietet sich an, das Script an einen schönen Platz zu legen und es mit "chmod +x" ausführbar zu machen. Kurze Installationsanleitung (ich habe einen Ordner namens "scripts" in meinem Homefolder und werde das Script sleep.sh nennen):
cd ~/scripts
nano sleep.sh
# kopiere obigen Quellcode ins Terminal, speichere mit ctrl+o und beende dann mit ctrl+x
chmod +x sleep.sh
Nun kann man es mit ./sleep.sh starten.


monty@python:~/eggs/and/spam$ echo "PATH=$PATH:~/scripts" >> ~/.bashrc
monty@python:~/eggs/and/spam$ sleep.sh 42
Kommentar hinzufügen