Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | anwenderwiki:einsammeln_ohne_schulkonsole [2015/07/11 21:47] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | {{tag> Einsammeln Schulkonsole Skripte}} | ||
+ | |||
+ | ====== Einsammeln ohne Schulkonsole ====== | ||
+ | Ohne Schulkonsole ist das Einsammeln von Schülerarbeiten mühsam, weil die Verzeichnisse weit verstreut liegen. | ||
+ | Das folgende Skript behebt diesen Mangel, indem es unter ''/ | ||
+ | |||
+ | Das Skript erzeugt folgende Struktur unter ''/ | ||
+ | < | ||
+ | __einsammeln-5a | ||
+ | schueler1 | ||
+ | schueler2 | ||
+ | __einsammeln-5b | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | #!/bin/bash | ||
+ | # link_einsammeln.sh | ||
+ | # Verlinke die __einsammeln-Verzeichnisse unter / | ||
+ | # | ||
+ | # Frank Schütte 2015 | ||
+ | # | ||
+ | STUDENTS=/ | ||
+ | EDIR=__einsammeln | ||
+ | |||
+ | PWD=`pwd`; | ||
+ | |||
+ | if [ -n " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | exit 0 | ||
+ | fi | ||
+ | |||
+ | [ -n " | ||
+ | |||
+ | [ -e " | ||
+ | |||
+ | cd $STUDENTS | ||
+ | |||
+ | remove_old_links(){ | ||
+ | for d in `ls`; do | ||
+ | ( | ||
+ | [ " | ||
+ | if [ -d ${EDIR}-$d ]; then | ||
+ | cd ${EDIR}-$d; | ||
+ | find . -type l -exec rm -f {} \; | ||
+ | cd .. | ||
+ | rmdir ${EDIR}-$d || return | ||
+ | fi | ||
+ | ) | ||
+ | done; | ||
+ | } | ||
+ | |||
+ | create_new_links(){ | ||
+ | ( | ||
+ | [ -n " | ||
+ | local DIR=" | ||
+ | mkdir $DIR || return | ||
+ | chown root.teachers $DIR | ||
+ | chmod 750 $DIR | ||
+ | [ " | ||
+ | cd $DIR | ||
+ | for schueler in `ls ../$1`; do | ||
+ | [ -e ../ | ||
+ | done; | ||
+ | ) | ||
+ | } | ||
+ | |||
+ | remove_old_links | ||
+ | |||
+ | for d in `ls`; do | ||
+ | create_new_links $d | ||
+ | done; | ||
+ | |||
+ | cd $PWD | ||
+ | |||
+ | exit 0 | ||
+ | </ | ||