Fähigkeiten bash-defensive-patterns
🛡️

bash-defensive-patterns

Sicher

Schreib robuste Bash-Skripte

Auch verfügbar von: wshobson

Verhindern Sie häufige Shell-Skripting-Fehler mit defensiven Programmiermustern. Diese Skill bietet produktionsreife Vorlagen für Fehlerbehandlung, Eingabevalidierung und sichere Dateioperationen, die Ihre Automatisierung vor Randfällen und unerwarteten Fehlern schützen.

Unterstützt: Claude Codex Code(CC)
🥉 72 Bronze
1

Die Skill-ZIP herunterladen

2

In Claude hochladen

Gehe zu Einstellungen → Fähigkeiten → Skills → Skill hochladen

3

Einschalten und loslegen

Teste es

Verwendung von "bash-defensive-patterns". Erstellen Sie ein Skript, das Log-Dateien, die älter als 7 Tage sind, mit Fehlerbehandlung rotiert

Erwartetes Ergebnis:

Das Skript wird enthalten: Strict-Mode-Konfiguration (set -Eeuo pipefail), Log-Verzeichnisvalidierung, find-Befehl mit korrekter Fehlerbehandlung, komprimierte Archivierung, atomare Dateioperationen, Bereinigungs-Traps für temporäre Dateien und strukturiertes Logging, das den Rotationsfortschritt und auftretende Fehler anzeigt.

Verwendung von "bash-defensive-patterns". Erstellen Sie ein Deployment-Skript mit Rollback-Fähigkeit

Erwartetes Ergebnis:

Generiertes Skript bietet: Argument-Parsing für Umgebungs- und Versions-Flags, Pre-Flight-Abhängigkeitsprüfungen, Backup-Erstellung des aktuellen Deployments vor Änderungen, atomares Symlink-Switching für Zero-Downtime-Deployment, Rollback-Funktion zum Wiederherstellen vom Backup, umfassendes Logging bei jedem Schritt und Fehler-Handler, die bei Fehler automatisch Rollback auslösen.

Verwendung von "bash-defensive-patterns". Schreiben Sie ein Skript, das Prozesse überwacht und Benachrichtigungen sendet

Erwartetes Ergebnis:

Das Überwachungsskript enthält: Prozess-Gesundheitsprüfung mit kill -0, konfigurierbare Prozessnamensliste, Alert-Schwellenwertkonfiguration, Retry-Logik mit exponentiellem Backoff, Benachrichtigungsfunktions-Platzhalter (E-Mail/Slack), Signalbehandlung für sauberes Herunterfahren, Hintergrundprozess-Verfolgung mit PID-Array und strukturiertes Logging mit Zeitstempeln für Audit-Trails.

Sicherheitsaudit

Sicher
v1 • 2/25/2026

All 106 static findings are false positives. The skill contains only markdown documentation with code examples demonstrating defensive Bash programming techniques. Command execution patterns, cryptographic references, and file operations are educational examples showing SAFE practices, not executable code. No prompt injection or malicious intent detected.

2
Gescannte Dateien
564
Analysierte Zeilen
0
befunde
1
Gesamtzahl Audits
Keine Sicherheitsprobleme gefunden
Auditiert von: claude

Qualitätsbewertung

38
Architektur
100
Wartbarkeit
87
Inhalt
32
Community
100
Sicherheit
100
Spezifikationskonformität

Was du bauen kannst

DevOps-Pipeline-Skripte

Erstellen Sie CI/CD-Pipeline-Skripte mit korrekter Fehlerbehandlung, Logging und idempotenten Operationen, die sicher fehlschlagen und klare Fehlermeldungen liefern.

Systemadministrations-Werkzeuge

Erstellen Sie Wartungsskripte, die Randfälle behandeln, Eingaben validieren und Bereinigungs-Handler enthalten, um Systemkorruption durch Automatisierungsfehler zu verhindern.

Entwickler-Tool-Skripte

Schreiben Sie Entwickler-Produktivitätswerkzeuge mit Argument-Parsing, Dry-Run-Unterstützung und umfassendem Logging für das Debuggen von Produktionsproblemen.

Probiere diese Prompts

Einfaches sicheres Skript
Erstellen Sie ein Bash-Skript, das ein Verzeichnis an einen Backup-Speicherort sichert. Verwenden Sie Strict-Mode, Fehlerbehandlung und validieren Sie, dass beide Verzeichnisse existieren, bevor Sie fortfahren.
Produktionsreifes CLI-Tool
Schreiben Sie ein Bash-Skript, das Eingabe-/Ausgabedatei-Argumente mit --input und --output-Flags akzeptiert. Beziehen Sie Argumentvalidierung, Hilfetext, strukturiertes Logging ein und unterstützen Sie den Dry-Run-Modus.
Prozess-Manager-Skript

Bewährte Verfahren

  • Aktivieren Sie immer Strict-Mode mit 'set -Eeuo pipefail' am Anfang von Skripten, um Fehler frühzeitig zu erkennen
  • Setzen Sie alle Variablenerweiterungen in Anführungszeichen, um Wortaufteilung und Globbing-Probleme zu vermeiden
  • Verwenden Sie [[ ]] anstelle von [ ] für Bedingungen, um sichereres Pattern-Matching zu ermöglichen und unerwartete Wortaufteilung zu verhindern

Vermeiden

  • Verwenden Sie keine unquotierten Variablen wie 'cp $source $dest' - dies verursacht Wortaufteilung bei Dateinamen mit Leerzeichen
  • Vermeiden Sie Backticks für Befehlssubstitution - bevorzugen Sie die moderne '$()'-Syntax für bessere Verschachtelung und Lesbarkeit
  • Verwenden Sie niemals 'set -e' allein ohne Pipefail zu verstehen - verwenden Sie immer 'set -Eeuo pipefail' zusammen für vollständige Fehlerbehandlung

Häufig gestellte Fragen

Warum empfiehlt diese Skill Strict-Mode, wenn dies Skripte bei Fehlern beenden lässt?
Strict-Mode verhindert, dass kleine Fehler zu größeren Problemen werden. Es stoppt die Ausführung sofort, wenn Befehle fehlschlagen, Variablen undefiniert sind oder Pipes brechen, was das Debugging viel einfacher macht und Datenkorruption durch Fortfahren mit fehlerhaftem Zustand verhindert.
Kann ich diese Muster mit POSIX sh anstelle von Bash verwenden?
Viele Muster wie Variablenquotierung und Fehlerbehandlung funktionieren in POSIX sh, aber einige Bash-spezifische Funktionen wie [[ ]]-Bedingungen und Arrays erfordern Bash 4.0+. Für strikte POSIX-Kompatibilität verwenden Sie [ ] anstelle von [[ ]] und vermeiden Sie Arrays.
Was ist der Unterschied zwischen [ ] und [[ ] bei Bedingungen?
Doppelte Klammern [[ ]] sind Bash-spezifisch und bieten sicherere Handhabung von Sonderzeichen, verhindern Wortaufteilung und unterstützen Pattern-Matching mit == und Regex mit =~. Einfache Klammern [ ] sind POSIX-standard, erfordern aber mehr Quotierung und haben weniger intuitives Verhalten.
Warum sollte ich 'command -v' anstelle von 'which' verwenden, um nach Befehlen zu suchen?
Der eingebaute Befehl 'command -v' ist POSIX-standard, funktioniert konsistent über alle Shells hinweg und erfordert keine externen Prozesse. Der 'which'-Befehl ist nicht auf allen Systemen verfügbar und kann je nach Betriebssystem unterschiedliche Ausgaben liefern.
Wie gehe ich mit Skriptfehlern um, die nicht tödlich sein sollten?
Verwenden Sie '|| true' nach Befehlen, die möglicherweise fehlschlagen dürfen, oder umschließen Sie Befehle in if-Anweisungen, um ihren Exit-Status explizit zu überprüfen. Für komplexere Logik können Sie Strict-Mode in bestimmten Blöcken vorübergehend mit 'set +e' deaktivieren und mit 'set -e' wieder aktivieren.
Was ist Idempotenz und warum ist sie für Shell-Skripte wichtig?
Idempotenz bedeutet, dass ein Skript dasselbe Ergebnis liefert, egal ob es einmal oder mehrmals ausgeführt wird. Dies ist entscheidend für die Zuverlässigkeit - wenn ein Skript mittendrin fehlschlägt und erneut ausgeführt wird, sollte es keine doppelten Ressourcen erstellen, an vorhandenen Elementen fehlschlagen oder das System in einem inkonsistenten Zustand hinterlassen.