Shell-Skripte schreiben
Kurz: Ein Shell-Skript ist eine Textdatei mit Befehlen, die die Shell nacheinander ausführt. So automatisiert man Wiederkehrendes: Sicherungen, Aufräumen, Installationen.
Das erste Skript
#!/usr/bin/env bash
set -euo pipefail # bei Fehlern abbrechen, undefinierte Variablen melden
name="${1:-Welt}" # erstes Argument oder "Welt"
echo "Hallo, $name!"Speichern als hallo.sh, ausführbar machen (chmod +x hallo.sh) und starten mit ./hallo.sh Anna.
Bausteine
- Variablen:
ziel="/tmp/test", benutzen mit"$ziel"(immer in Anführungszeichen, wegen Leerzeichen). - Bedingungen:
if test -f "$datei"; then ... fi. Wichtige Tests:-fDatei,-dOrdner,-zleerer Text. - Schleifen:
for f in *.txt; do echo "$f"; done. - Funktionen:
sichern() { cp "$1" "$1.bak"; }. - Rückgabewert:
$?ist 0 bei Erfolg. Mit&&und||verkettet man abhängig davon.
Gute Gewohnheiten
set -euo pipefailan den Anfang.- Variablen immer in Anführungszeichen.
- Skripte mit
shellcheckprüfen, ein Werkzeug, das typische Fehler findet. - Für mehr als etwa hundert Zeilen oder komplexe Daten lieber Python.
Siehe auch: Bash, grep, sed und awk: Text im Terminal bearbeiten