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 | ||
| + | </ | ||