# Shell-Skripte und Jobs

> Skripte als überprüfbare Automatisierung mit klaren Eingaben, Fehlerpfaden und Nebenwirkungen gestalten.

Track: [Linux System Administration](https://opsmith.app/learn/linux-system-administration)  
Kanonische Fassung: https://opsmith.app/learn/linux-system-administration/shell-scripting  
Stand: 2026-07-30  
Interaktiver Teil: 5 Checks (nur im Browser)

## Automatisierung, die ihren Fehlerpfad kennt

### Die Betriebsfrage

Wie wird aus einer einmaligen Shell-Zeile ein sicher wiederholbarer Job, dessen Eingaben, Fehler und Seiteneffekte überprüfbar sind?

> **Lernziel:** Du kannst Eingaben validieren, Fehler sichtbar machen, Seiteneffekte begrenzen und einen Job gegen Wiederholung absichern.

### Skriptvertrag

|  |  |
| --- | --- |
| Eingabe | Pfade, Parameter und Umgebung explizit prüfen und quoten. |
| Zustand | Vor dem Ändern feststellen, ob das Ziel bereits erreicht ist. |
| Fehler | Fehlercode, Ausgabe und Aufräumweg für den Aufrufer sichtbar halten. |
| Nebenwirkung | Temporäre Dateien, Locks und Remote-Aufrufe auf Scope und Rückweg prüfen. |

### Kontrollschleife

Voraussetzungen lesen und validieren → kleinsten sicheren Umfang berechnen → Änderung idempotent ausführen → Ergebnis und Exitstatus prüfen

### Vor dem Check

> **Grenze:** `set -e` ersetzt keine fachliche Fehlerbehandlung: manche erwarteten Rückgabecodes müssen bewusst behandelt werden. Die Checks fragen nach explizitem Verhalten, nicht nach einem magischen Schalter.

## Quellen

- gnu.org/software/bash/manual/bash.html — https://www.gnu.org/software/bash/manual/bash.html
- shellcheck.net — https://www.shellcheck.net/
- gnu.org/software/coreutils/manual — https://www.gnu.org/software/coreutils/manual/
- man7.org/linux/man-pages/man1/flock.1.html — https://man7.org/linux/man-pages/man1/flock.1.html
- man7.org/linux/man-pages/man2/rename.2.html — https://man7.org/linux/man-pages/man2/rename.2.html
