Bild von 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.

Bild von Gast
Du könntest in deiner ~/.bashrc noch den $PATH anpassen, sodass dein Script von überall ausführbar ist.
monty@python:~/eggs/and/spam$ # $PATH in der Datei ~/.bashrc aktualisieren
monty@python:~/eggs/and/spam$ echo "PATH=$PATH:~/scripts" >> ~/.bashrc
monty@python:~/eggs/and/spam$ # Das Bashscript ist dann von überall aus mit seinem einfachen Namen ausführbar
monty@python:~/eggs/and/spam$ sleep.sh 42
PS: Ne Vorschau-Funktion für die Kommentare wäre noch ganz toll, so muss ich hoffen, dass diese BB-Codes tun. ;-)

Bild von Gast
Nö, tun sie natürlich nicht. Tobi, bitte fixen. ;-)

Bild von Gast
Gefixt. Ach ja die syntax ist <code> foo <code>

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt. Wenn Sie ein Gravatar-Konto haben, wird dieses verwendet, um Ihr Benutzerbild darzustellen.
Falls du eine eigene Website hast gib hier die Adresse ein und wir verlinken sie. (Bitte mit http://).