Bash: Anleitungen und Praxiswissen | Seite 3 | mironsoft Blog
Bash
-
09.03.2026
Bashs eingebautes Globbing kann weit mehr als das einfache Sternchen-Muster vieler Anfängerskripte: Mit shopt -s extglob stehen erweiterte Pattern wie Alternativen und Negation zur Verfügung, globstar aktiviert rekursives ** Matching über ganze Verzeichnisbäume, und nullglob verhindert den klassischen Fehler, bei dem ein Muster ohne Treffer wörtlich als Dateiname weitergereicht wird.
-
07.03.2026
Wer täglich mit mehreren Kubernetes-Clustern arbeitet, tippt dieselben kubectl-Kommandos hunderte Male und riskiert dabei, versehentlich im falschen Namespace zu löschen. Ein durchdachter kubectl-Wrapper in Bash verkürzt wiederkehrende Befehle, baut Sicherheitsnetze für Produktions-Namespaces ein und macht Pod-Auswahl per Fuzzy-Finder statt Copy-Paste von Pod-Namen.
-
28.02.2026
Wer in einer Schleife tausendfach ein externes Kommando neu startet, verschenkt Laufzeit durch wiederholten Prozessstart. Ein Coprozess hält genau ein solches Kommando dauerhaft im Hintergrund am Leben und erlaubt der Shell, über zwei Filedeskriptoren in beide Richtungen mit ihm zu sprechen, statt für jede einzelne Anfrage einen neuen Kindprozess zu erzeugen.
-
27.02.2026
Bash bringt mit der Pseudo-Datei /dev/tcp ein eingebautes Werkzeug mit, um zu prüfen, ob ein TCP-Port auf einem anderen Host erreichbar ist, ganz ohne netcat, nmap oder ein Zusatzpaket zu installieren. Für einfache Erreichbarkeits-Checks in Monitoring- und Deployment-Skripten reicht das oft völlig aus, für echte Sicherheitsanalysen oder große Netzbereiche ist es dagegen der falsche Werkzeugkasten.
-
25.02.2026
Eine Subshell ist bequem, aber nicht kostenlos: Jede Klammer, jede Pipe und jede Command Substitution erzeugt einen neuen Kindprozess mit eigener Kopie des Environments. Sourcing führt dieselben Kommandos im aktuellen Prozess aus, spart den fork und teilt Variablen direkt, hat dafür aber ganz andere Nebenwirkungen auf den Skript-Zustand.
-
22.02.2026
Ein Datenbank-Passwort in einer .env-Datei oder einer Pipeline-Variable ist ein Secret, das irgendwann in einem Log, einem Backup oder einer History-Datei landet. Vault-Secrets, die Bash-Skripte zur Laufzeit gezielt abrufen, prüfen und danach nirgendwo persistieren, schließen genau diese Lücke, inklusive dynamischer Datenbank-Credentials und automatischer Rotation.
-
22.02.2026
Bash-Skripte wachsen schnell über die Größe eines einzelnen Einliners hinaus. Wer Funktionen, lokalem Scope mit local und declare, Bibliotheken über BASH_SOURCE und Namenreferenzen konsequent einsetzt, baut Automatisierungen, die auch nach einem Jahr noch verständlich und erweiterbar sind.
-
15.02.2026
Rohe ANSI-Escape-Codes wie \e[31m sehen im eigenen Terminal gut aus, brechen aber, sobald ein Skript auf einem anderen Terminaltyp läuft oder seine Ausgabe in eine Logdatei umgeleitet wird. tput fragt stattdessen die tatsächlichen Fähigkeiten des aktuellen Terminals ab und liefert die passende Escape-Sequenz, während ein einfacher isatty-Check dafür sorgt, dass Farbe automatisch verschwindet, sobald niemand mehr sie interaktiv liest.
-
06.02.2026
Ein Cronjob-Eintrag in der Crontab ist nur der Anfang. Ohne Locking laufen Jobs parallel, ohne Logging verschwinden Fehler, ohne Monitoring läuft ein ausgefallener Cronjob wochenlang unbemerkt. flock, strukturiertes Logging, Exit-Code-Checks und systemd-Timer verwandeln fragile Cron-Aufrufe in zuverlässige, beobachtbare Automatisierungseinheiten.
-
05.02.2026
Ein Entrypoint Skript mit Arrays und Prozess-Substitution laeuft lokal problemlos und bricht im Alpine Container mit exec format error ab. Der Grund ist BusyBox ash, das im Standard Alpine Image anstelle von Bash als /bin/sh dient und nur einen Bruchteil des gewohnten Funktionsumfangs bietet.