Shell-Skripte
Wiederkehrende oder umständliche Abläufe zu vereinfachen ist der häufigste Grund, ein Shell-Skript zu schreiben. Ein Skript ist nichts Geheimnisvolles: eine Textdatei mit Befehlen, die du auch von Hand tippen könntest, ergänzt um Variablen, Bedingungen und Schleifen. Wer die Shell aus Modul 7 beherrscht, bringt alles mit.
Dieses Modul ist das Herzstück des Kurses. Du baust in drei Teilen Skripte, die aufeinander aufbauen, und härtest sie im vierten Teil für den Alltag:
addscript.sherzeugt aus einer Vorlage neue Skripte. Damit sparst du ab sofort Tipparbeit.menu.shist ein interaktives Menü, dasaddscript.shbenutzt.sysinfo.shliest Hardware-Informationen aus und wird über Optionen gesteuert.- Alle Skripte werden mit ShellCheck geprüft und robust gemacht.
Jedes Listing zeigt nur die Änderung zum vorherigen Stand (markierte Zeilen). Nach jedem Schritt heisst es: testen. Überlege dir vorher, was passieren sollte, und vergleiche mit dem, was passiert. Einige Stolperfallen sind absichtlich eingebaut, du behebst sie Schritt für Schritt. Parallel zum Code zeichnen wir den Ablauf als Flowchart, so wie es auch in Projektdokumentationen üblich ist.
- Das erste Skript: Shebang, Argumente, Bedingungen, Exit-Codes. Artefakt:
addscript.sh. - Kontrollstrukturen: read, while, case, for, Arrays. Artefakt:
menu.sh. - Funktionen und Optionen: Funktionen, local, getopts. Artefakt:
sysinfo.sh. - Robuste Skripte: Quoting, set -euo pipefail, trap, ShellCheck, Parameter-Expansion, Here-Docs.
Werkzeuge und Abgabe
Abschnitt betitelt „Werkzeuge und Abgabe“Editor. Nimm den Editor, in dem du schnell bist. In der VM ist das vim oder nano (siehe Modul 5). Wer lieber grafisch arbeitet, installiert VS Code mit der Erweiterung ShellCheck: Sie unterstreicht Fehler, bevor du das Skript überhaupt ausführst. Auf der Kommandozeile geht dasselbe mit sudo apt install shellcheck und shellcheck skript.sh.
Arbeitsverzeichnis. Alle Skripte dieses Moduls legst du direkt im Kurs-Repository unter labs/linux/08-skripte/ an und arbeitest dort. So liegen addscript.sh und menu.sh nebeneinander, und die Pipeline prüft jede Abgabe automatisch mit ShellCheck. Wie Branch, Commit und Merge Request gehen, steht unter Arbeitsweise.