# M122 - Aufgabe 2024-04 MUH ## A Dateien und Verzeichnisse anlegen | Stufe | Punkte |Beschreibung | |-------|--------|------------ | | 1 | 1 | "Skript erstelleVorlagen.sh:" Erstellung Namensdateien (mind. 3 Dateien mit mind. 8 Namen aus der Klasse und Ihrer Verwandschaft) | | 2 | 1 | "Skript erstelleVorlagen.sh:" Erstellung der Dateien im Template-Verzeichnis | | - | - | | | 3 | 1 | "Skript verteileDateien.sh:" Klassenverzeichnis wird angelegt | | 4 | 1 | "Skript verteileDateien.sh:" Lernendenverzeichnisse werden angelegt | | 5 | 1 | "Skript verteileDateien.sh:" Lernendenverzeichnisse haben die Dateien drin | | 6 | 1 | "Skript verteileDateien.sh:" Mehrere Klassen- und Lernenden-Verzeichnisse | | | **6** | **Total** | | | 1 | Eingechecked in GitLab, GitHub, BitBucket | | | | | | |**Plagiat**| Reduktion der Punkte nach Einschätzung des Lehrers, wenn der gleiche Code schon mal gesehen wurde | | | | | Als Lehrer habe ich den Bedarf, für alle Lernenden einer Klasse dieselben Dateien zur Verfügung zu stellen. Sie können sich auch vorstellen, Sie müssen für eine Anzahl ihrer Kollegen oder Mitarbeiter einen Satz von gleichen Dateien bereitstellen. In diesem Beispiel gibt mehrere Klassen. Jede Klasse bekommt ein Verzeichnis. In diesem Klassenverzeichnis wird für jede Person ein weiteres Verzeichnis angelegt. Das heisst, dass alle Lernenden ein eigenes Verzeichnis bekommen. Und in diesem Lernenden-Verzeichnis sollen dann die gleichen Dateien zur Verfügung gestellt werden. ### Endresultat Es soll nachher eine solche Struktur entstehen: gen/M122-AP22b Amherd Datei-1.txt Datei-2.docx Datei-3.pdf Baume Datei-1.txt Datei-2.docx Datei-3.pdf Keller Datei-1.txt Datei-2.docx Datei-3.pdf usw. gen/M122-AP22c Arslan Datei-1.txt Datei-2.docx Datei-3.pdf Buehler Datei-1.txt Datei-2.docx Datei-3.pdf Camenisch Datei-1.txt Datei-2.docx Datei-3.pdf usw. ### Vorgehen Sie erstellen 2 Skripts: #### Teil 1 "erstelleVorlagen.sh" für die Erstellung des Templateverzeichnis wo nachher mind. 3 Dateien drin stehen und mind. 3 Klassen-Dateien mit einer Liste von mind. 12 Schüler:innen-Nachnamen - Machen Sie ein erstes Skript mit dem Namen `erstelleVorlagen.sh` und machen Sie das Skript ausführbar (executable) mit `chmod +x erstelleVorlagen.sh` - Die erste Zeile im Skript enthält `#!/bin/bash` - Entwickeln Sie nun Ihren Code der folgendes macht: - Erzeuge Directory "_templates" - Erstellen Sie in diesem Directory mindestens 3 Dateien (z.B. datei-1.txt, datei-2.pdf, datei-3.doc) - Erzeuge Directory "_schulklassen" - Erstellen Sie in diesem Directory mindestens 2 Schulklassen-Dateien z.B. M122-AP22b.txt, M122-AP22c.txt, M122-AP22d.txt - Lassen Sie in jede Schulklassen-Datei mind. 12 Schüler-Namen reinschreiben ![aufgabeA_erstelleVorlagen.jpg](x_ressources/aufgabeA_erstelleVorlagen.jpg) #### Teil 2 "verteileDateien.sh" Das Skript aus Teil 1 ist die Vorgabe für dieses Skript Teil 2. Es geht nun um die Verarbeitung der Klassen-Dateien und die Verteilung der Dateien. - Machen Sie ein Skript mit dem Namen `verteileDateien.sh` und machen Sie das Skript ausführbar (executable) mit `chmod +x verteileDateien.sh` - Die erste Zeile im Skript enthält `#!/bin/bash` - Entwickeln Sie nun Ihren Code der folgendes macht: - Lesen Sie alle Dateien aus "_schulklassen" und erstellen Sie für jede angetroffene Datei ein Directory mit dem Namen der Datei, jedoch ohne die Datei-Endung `.txt` (es wird also für jede Klasse ein Directory erstellt). - Lesen Sie für jede Datei (=Klasse) die Inhalte (=Schülernamen) aus und erstellen Sie für jede Zeile ein Directory (=pro Schülername ein Directory) - Kopieren Sie alles was in `_templates` steht zu diesem neu erstellen Schüler-Directory ![aufgabeA_verteileDateien.jpg](x_ressources/aufgabeA_verteileDateien.jpg)