Warum diesen Shell-Skript-Formatierer verwenden
- Sofortige Formatierung für POSIX sh, Bash, mksh und verwandte Shells
- shfmt-Stilregeln für Einrückungen, Abstände und Case/esac-Blöcke
- Entwickelt zur Unterstützung von Optionen wie Einrückungsgröße, Tabs vs. Leerzeichen und Redirect-Abstände
- Rohen Code einfügen oder `.sh`, `.bash`, `.ksh`, `.mksh` oder `.bats` Dateien hochladen
- Perfekter Begleiter für CI/CD-Pipelines, Docker-Entrypoints und Dotfiles
- Formatiert über ein gesichertes Backend mit shfmt-Logik – keine lokale Installation erforderlich
- Ein-Klick-Kopieren oder Herunterladen des bereinigten Skripts
🛠️ So formatieren Sie Ihre Shell-Skripte online for shell-script-formatter
1. Skript einfügen oder hochladen
📥 Fügen Sie Ihren Shell-Code in den Editor ein oder ziehen Sie eine `.sh`, `.bash`, `.ksh`, `.mksh` oder `.bats` Datei per Drag-and-Drop. Syntax-Hervorhebung erleichtert das Erkennen von Struktur und Befehlen.
2. (Optional) Erweiterte Einstellungen anpassen
⚙️ Wenn Ihr Projekt benutzerdefinierte Stilregeln verwendet, passen Sie die Einrückung oder andere erweiterte Optionen an, sofern in der Benutzeroberfläche verfügbar. Andernfalls entspricht das Standardprofil bereits gängigen shfmt-Praktiken.
3. Skript formatieren
✨ Klicken Sie auf **Formatieren**, um Ihr Skript an die sichere Formatierungs-API zu senden. Es überarbeitet Einrückungen, Abstände und bestimmte Konstrukte, während das Verhalten erhalten bleibt.
4. Ergebnis kopieren oder herunterladen
📤 Kopieren Sie das formatierte Skript zurück in Ihren Editor oder laden Sie es als `.sh` Datei für git, CI oder Produktions-Deployments herunter.
Technische Spezifikationen
Unterstützte Formate & Erweiterungen
Unterstützt gängige Bourne-Shell-Dialekte, die in realen Systemen vorkommen:
| Format / Dialekt | Typische Erweiterung | Beschreibung |
|---|---|---|
| POSIX sh | .sh | Portable Shell-Skripte kompatibel mit /bin/sh |
| Bash | .sh, .bash | GNU Bash-Skripte und interaktive Helfer |
| Korn shell (ksh) | .ksh | Korn-Shell-Skripte in Legacy-Umgebungen |
| mksh | .mksh | MirBSD Korn-Shell-Skripte |
| Bats-Tests | .bats | Shell-basierte Test-Suiten mit Bats |
Formatierungsverhalten (shfmt-Stil)
Das Backend-Formatierungswerkzeug folgt shfmt-Stilregeln für einheitliches Shell-Layout.
| Aspekt | Verhalten | Vorteil |
|---|---|---|
| Einrückung | Normalisiert Einrückung bei `if`, `for`, `while`, `case`, Funktionen und Subshells | Einfachere visuelle Analyse von Kontrollfluss und Verschachtelung. |
| Abstände | Fügt Leerzeichen um `=` in Zuweisungen und um binäre Operatoren hinzu, wo angemessen | Reduziert visuelles Rauschen und versehentliche Analysefehler. |
| Umleitungen | Unterstützt Abstände um `>`, `>>`, `<` gemäß shfmt-Stil-Konventionen | Verbessert die Lesbarkeit von Dateiumleitungen. |
| Case-Blöcke | Richtet `case`, Musterzweige und `esac` konsistent aus | Verhindert tief verschachtelte oder komprimierte Case-Anweisungen. |
| Idempotente Ausgabe | Erneutes Ausführen des Formatierers liefert dasselbe Ergebnis | Ermöglicht sichere Integration in Pre-Commit-Hooks und CI. |
Eingabegrenzen & Größe
Entworfen, um schnell und vorhersehbar zu sein, selbst bei nicht-trivialen Skripten.
| Parameter | Grenze / Verhalten | Hinweise |
|---|---|---|
| Maximale Eingabegröße (Text) | ≈ 2 MB | Skripte größer als diese sollten lokal mit shfmt formatiert werden. |
| Maximale Dateigröße (Upload) | ≈ 5 MB | Ideal für die meisten Bereitstellungsskripte und Utility-Sammlungen. |
| Kodierung | UTF-8 empfohlen | Konvertieren Sie Legacy-Kodierungen wie ISO-8859-1 vor der Formatierung. |
Ausführungsmodell
Der Formatierer läuft über ein gesichertes Backend mit shfmt-Stil-Logik.
| Aspekt | Verhalten | Hinweise |
|---|---|---|
| Transport | HTTPS-Aufruf an den Endpunkt `/api/shell-script-formatter` | Verhindert Abhören während Ihr Skript formatiert wird. |
| Timeout | ~25 Sekunden pro Anfrage | Vermeidet außer Kontrolle geratene Jobs bei extrem großen oder pathologischen Eingaben. |
| Semantik | Nur Leerzeichen und Layout | Ihre Skriptlogik bleibt erhalten; nur die Formatierung wird geändert. |
CLI-Äquivalent mit shfmt
Möchten Sie das gleiche Verhalten in Ihrem Terminal oder CI-Pipeline? Verwenden Sie `shfmt` direkt:
Linux / 🍎 macOS / 🪟 Windows (über WSL oder Go)
Installieren Sie shfmt mit Go
go install mvdan.cc/sh/v3/cmd/shfmt@latestInstalliert die `shfmt`-Binärdatei in Ihr Go-Bin-Verzeichnis (z.B. `~/go/bin`).
Formatieren Sie eine Shell-Datei mit 2-Leerzeichen-Einrückung
shfmt -i 2 -w script.shÜberschreibt `script.sh` mit konsistent formatierter Ausgabe.
Formatieren und auf stdout ausgeben
shfmt -i 4 script.shVerwendet 4-Leerzeichen-Einrückung und gibt auf stdout aus, ohne die Datei zu ändern.
Formatierung in CI prüfen (keine Änderungen)
shfmt -d scripts/Zeigt einen Diff für Dateien, die neu formatiert werden müssten; beendet mit Nicht-Null, wenn Änderungen erforderlich sind.
Praktische Anwendungsfälle für Shell-Formatierung
DevOps & CI/CD-Pipelines
Halten Sie geschäftskritische Skripte lesbar, überprüfbar und produktionssicher.
- Bereinigen Sie Bereitstellungs- und Rollback-Skripte vor dem Merge in `main`.
- Normalisieren Sie Hooks in `.git/hooks`, `scripts/` und CI-Helfern.
- Formatieren Sie Docker-Entrypoints und Container-Bootstrap-Skripte.
shfmt -i 2 -w ./scripts/deploy.shshfmt -i 2 -w ./scripts/*.shTeamarbeit & Open Source
Vermeiden Sie Stil-Diskussionen und konzentrieren Sie sich in Reviews auf die Logik.
- Ein einheitliches Styling auf alle Shell-Skripte der Mitwirkenden anwenden.
- Onboarding erleichtern, indem Dotfiles und Helfer ordentlich gehalten werden.
- Unübersichtliche Diffs reduzieren durch Standardisierung von Einrückungen und Abständen.
shfmt -w hooks/*.shshfmt -i 2 -ci -bn -w .Shell-Skripte lernen & lehren
Zeige Best Practices für Studierende und Nachwuchsentwickler.
- Beispiele bereinigen, bevor sie in Folien oder Dokumentation aufgenommen werden.
- Studentische Abgaben automatisch formatieren, um Feedback auf die Semantik zu konzentrieren.
- Demonstrieren, wie das Layout Lesbarkeit und Fehlersuche beeinflusst.
❓ Frequently Asked Questions
🔍Was ist shfmt?
⚙️Kann ich wählen, wie viele Leerzeichen eingerückt werden?
🚫Überschreibt dieses Web-Tool meine Datei?
💬Versteht es Bash-spezifische Syntax?
🔒Ist es sicher, sensible Skripte hier zu formatieren?
Pro Tips
Führen Sie shfmt vor jedem Commit aus, damit sich Ihre Git-Historie auf echte Änderungen konzentriert, nicht auf Leerzeichen.
Kombinieren Sie `shfmt -d` mit CI, um Merges zu blockieren, wenn Skripte nicht korrekt formatiert sind.
Kombinieren Sie diesen Formatierer mit ShellCheck, um sowohl Stil- als auch Logikprobleme in Ihren Shell-Skripten zu erkennen.
Halten Sie Ihre Shebangs (`#!/usr/bin/env bash`) in allen Skripten konsistent, um subtile Portabilitätsprobleme zu vermeiden.
Additional Resources
Other Tools
- CSS-Verschönerer
- HTML-Verschönerer
- JavaScript-Verschönerer
- PHP-Verschönerer
- Farbauswahl
- Sprite-Extraktor
- Base64-Decoder
- Base64-Encoder
- Csharp-Formatierer
- CSV-Formatierer
- Dockerfile Formatter
- Elm-Formatierer
- ENV-Formatierer
- Go-Formatierer
- GraphQL-Formatierer
- HCL-Formatierer
- INI-Formatierer
- JSON-Formatierer
- LaTeX-Formatierer
- Markdown-Formatierer
- Objective-C-Formatierer
- Php Formatter
- Proto-Formatierer
- Python-Formatierer
- Ruby-Formatierer
- Rust-Formatierer
- Scala-Formatierer
- SQL-Formatierer
- SVG-Formatierer
- Swift-Formatierer
- TOML-Formatierer
- Typescript Formatter
- XML-Formatierer
- YAML-Formatierer
- Yarn-Formatierer
- CSS-Minifizierer
- Html Minifier
- Javascript Minifier
- JSON-Minifizierer
- XML-Minifizierer
- HTTP-Header-Betrachter
- PDF zu Text
- Regex-Tester
- SERP-Rang-Prüfer
- Whois-Abfrage