Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| — | anwenderwiki:scripting:schultag.sh [2013/03/26 22:53] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | < | ||
| + | #!/bin/bash | ||
| + | # schultag.sh | ||
| + | # Dieses Skript liest die Konfigurationsdateien " | ||
| + | # und beendet sich mit Fehlercode 0, falls der Aufruf an einem Schultag ist. | ||
| + | # andernfalls beendet sich das Skript mit Fehlercode 99 | ||
| + | # die Fehlercodes sind unten konfigurierbar | ||
| + | # | ||
| + | # Skript von Jesko Anschütz, Januar 2012 | ||
| + | # Das Skript kann frei verwendet, angepasst, so gelassen oder auch nciht benutzt werden. | ||
| + | ########### HIER WIRD KONFIGURIERT ############### | ||
| + | # wo liegen die Config-Dateien? | ||
| + | # Pfad mit abschließendem Schrägstrich | ||
| + | config_pfad="/ | ||
| + | |||
| + | # wie heißen die Dateien? | ||
| + | # Dateiname ohne Pfad und ohne Schrägstrich | ||
| + | ferien_conf=" | ||
| + | feiertage_conf=" | ||
| + | ausnahmen_conf=" | ||
| + | |||
| + | # Welche Wochentage sind grundsätzlich Schulfrei? | ||
| + | # Leerzeichen-getrennte Liste der Lokalen Kurznamen der Tage | ||
| + | # (Deutsches System z.B. Mo Di Mi Do Fr Sa So) | ||
| + | schulfreie_wochentage=" | ||
| + | |||
| + | # In welchem Format stehen die Daten in den Config-Dateien? | ||
| + | datumsformat=" | ||
| + | |||
| + | # Vielleicht ist irgendwann eine Unterscheidung von Wochenende und Ferien sinnvoll | ||
| + | # z.B. für Home-Backups, | ||
| + | exitcode_ferien=99 | ||
| + | exitcode_wochenende=98 | ||
| + | exitcode_feiertag=97 | ||
| + | exitcode_schultag=0 | ||
| + | |||
| + | ########### HIER DRUNTER MUSS NICHTS MEHR VERÄNDERT WERDEN! ################ | ||
| + | |||
| + | # schauen wir mal, ob die Config-Dateien existieren und brechen ggf. ab. | ||
| + | [ ! -e $config_pfad$ferien_conf ] && echo " | ||
| + | [ ! -e $config_pfad$ausnahmen_conf ] && echo " | ||
| + | |||
| + | # Ausnahmen durchgehen und ggf. Schultag melden | ||
| + | for ausnahmedatum in `awk ' | ||
| + | do | ||
| + | if [ " | ||
| + | then | ||
| + | exit $exitcode_schultag | ||
| + | fi | ||
| + | done | ||
| + | |||
| + | for schulfrei in $schulfreie_wochentage; | ||
| + | do | ||
| + | if [ " | ||
| + | then | ||
| + | exit $exitcode_wochenende | ||
| + | fi | ||
| + | done | ||
| + | |||
| + | for feiertag in `awk ' | ||
| + | do | ||
| + | if [ " | ||
| + | then | ||
| + | exit $exitcode_feiertag | ||
| + | fi | ||
| + | done | ||
| + | |||
| + | |||
| + | for ferien in `awk ' | ||
| + | do | ||
| + | if [ " | ||
| + | then | ||
| + | IFS=" | ||
| + | set -- $ferien | ||
| + | if [ $1 -le `date +$datumsformat` ] && [ $2 -ge `date +$datumsformat` ] | ||
| + | then | ||
| + | exit $exitcode_ferien | ||
| + | fi | ||
| + | fi | ||
| + | done | ||
| + | exit 0 | ||
| + | </ | ||