Pourquoi Utiliser Ce Formateur de Scripts Shell
- Formatage instantané pour sh POSIX, Bash, mksh et shells apparentés
- Règles de style shfmt pour l'indentation, l'espacement et les blocs case/esac
- Conçu pour supporter des options comme la taille d'indentation, tabulations vs espaces et l'espacement des redirections
- Collez du code brut ou téléchargez des fichiers `.sh`, `.bash`, `.ksh`, `.mksh` ou `.bats`
- Compagnon idéal pour les pipelines CI/CD, les points d'entrée Docker et les dotfiles
- Formaté via un backend sécurisé exécutant la logique shfmt – aucune installation locale requise
- Copie ou téléchargement en un clic du script nettoyé
🛠️ Comment Formater Vos Scripts Shell en Ligne for shell-script-formatter
1. Collez ou Téléchargez Votre Script
📥 Collez votre code shell dans l'éditeur, ou glissez-déposez un fichier `.sh`, `.bash`, `.ksh`, `.mksh` ou `.bats`. La coloration syntaxique facilite la visualisation de la structure et des commandes.
2. (Optionnel) Ajustez les Paramètres Avancés
⚙️ Si votre projet utilise des règles de style personnalisées, ajustez l'indentation ou d'autres options avancées lorsqu'elles sont disponibles dans l'interface. Sinon, le profil par défaut correspond déjà aux pratiques shfmt courantes.
3. Formatez Votre Script
✨ Cliquez sur **Formater** pour envoyer votre script à l'API de formatage sécurisée. Elle réécrit l'indentation, l'espacement et certaines constructions tout en préservant le comportement.
4. Copiez ou Téléchargez le Résultat
📤 Copiez le script formaté dans votre éditeur, ou téléchargez-le en tant que fichier `.sh` prêt pour git, CI ou les déploiements en production.
Spécifications Techniques
Formats et Extensions Pris en Charge
Prend en charge les dialectes shell de style Bourne courants rencontrés dans les systèmes réels :
| Format / Dialecte | Extension Typique | Description |
|---|---|---|
| sh POSIX | .sh | Scripts shell portables compatibles avec /bin/sh |
| Bash | .sh, .bash | Scripts GNU Bash et aides interactives |
| Korn shell (ksh) | .ksh | Scripts Korn shell dans les environnements hérités |
| mksh | .mksh | Scripts Korn shell MirBSD |
| Tests Bats | .bats | Suites de tests basées sur le shell utilisant Bats |
Comportement de Formatage (Style shfmt)
Le formateur backend suit les règles de style shfmt pour une mise en page cohérente du shell.
| Aspect | Comportement | Avantage |
|---|---|---|
| Indentation | Normalise l'indentation sur `if`, `for`, `while`, `case`, les fonctions et les sous-shells | Facilite l'analyse visuelle du flux de contrôle et de l'imbrication. |
| Espacement | Ajoute des espaces autour de `=` dans les affectations et autour des opérateurs binaires lorsque cela est approprié | Réduit le bruit visuel et les erreurs d'analyse accidentelles. |
| Redirections | Prend en charge l'espacement autour de `>`, `>>`, `<` selon les conventions de style shfmt | Améliore la lisibilité des redirections de fichiers. |
| Blocs case | Aligne `case`, les branches de motifs et `esac` de manière cohérente | Évite les instructions case profondément imbriquées ou compressées. |
| Sortie idempotente | Exécuter à nouveau le formateur donne le même résultat | Permet une intégration sûre dans les hooks pre-commit et CI. |
Limites et Taille des Entrées
Conçu pour être rapide et prévisible même sur des scripts non triviaux.
| Paramètre | Limite / Comportement | Notes |
|---|---|---|
| Taille maximale d'entrée (texte) | ≈ 2 Mo | Les scripts plus volumineux sont mieux formatés localement avec shfmt. |
| Taille maximale de fichier (téléchargement) | ≈ 5 Mo | Idéal pour la plupart des scripts de déploiement et collections d'utilitaires. |
| Encodage | UTF-8 recommandé | Convertissez les encodages hérités comme ISO-8859-1 avant le formatage. |
Modèle d'Exécution
Le formateur s'exécute via un backend sécurisé utilisant la logique de style shfmt.
| Aspect | Comportement | Notes |
|---|---|---|
| Transport | Appel HTTPS vers le point de terminaison `/api/shell-script-formatter` | Empêche l'écoute clandestine pendant le formatage de votre script. |
| Délai d'attente | ~25 secondes par requête | Évite les tâches incontrôlables sur des entrées extrêmement volumineuses ou pathologiques. |
| Sémantique | Uniquement les espaces et la mise en page | La logique de votre script est préservée ; seul le formatage est modifié. |
Équivalent CLI avec shfmt
Vous voulez le même comportement dans votre terminal ou pipeline CI ? Utilisez `shfmt` directement :
Linux / 🍎 macOS / 🪟 Windows (via WSL ou Go)
Installer shfmt avec Go
go install mvdan.cc/sh/v3/cmd/shfmt@latestInstalle le binaire `shfmt` dans votre répertoire bin de Go (par exemple `~/go/bin`).
Formater un fichier shell avec une indentation de 2 espaces
shfmt -i 2 -w script.shÉcrase `script.sh` avec une sortie formatée de manière cohérente.
Formater et afficher sur stdout
shfmt -i 4 script.shUtilise une indentation de 4 espaces et affiche sur stdout sans modifier le fichier.
Vérifier le formatage en CI (sans modifications)
shfmt -d scripts/Affiche un diff pour les fichiers qui seraient reformatés ; sort avec un code non nul si des modifications sont nécessaires.
Cas d'utilisation pratiques pour le formatage de shell
DevOps & Pipelines CI/CD
Gardez les scripts critiques lisibles, révisables et sûrs pour la production.
- Nettoyez les scripts de déploiement et de retour arrière avant de fusionner dans `main`.
- Normalisez les hooks dans `.git/hooks`, `scripts/` et les aides CI.
- Formatez les points d'entrée Docker et les scripts d'amorçage de conteneurs.
shfmt -i 2 -w ./scripts/deploy.shshfmt -i 2 -w ./scripts/*.shCollaboration d'équipe & Open Source
Évitez les débats de style et concentrez-vous sur la logique lors des revues.
- Appliquer un style unique à tous les scripts shell des contributeurs.
- Faciliter l'intégration en maintenant les dotfiles et les aides bien organisés.
- Réduire les différences parasites en standardisant l'indentation et l'espacement.
shfmt -w hooks/*.shshfmt -i 2 -ci -bn -w .Apprentissage et Enseignement du Scripting Shell
Montrer les bonnes pratiques aux étudiants et aux développeurs juniors.
- Nettoyer les exemples avant de les intégrer dans des diapositives ou de la documentation.
- Auto-formater les soumissions des étudiants pour concentrer les retours sur la sémantique.
- Démontrer comment la mise en page affecte la lisibilité et la détection des bogues.
❓ Frequently Asked Questions
🔍Qu'est-ce que shfmt ?
⚙️Puis-je choisir le nombre d'espaces pour l'indentation ?
🚫Cet outil web écrase-t-il mon fichier ?
💬Comprend-il la syntaxe spécifique à Bash ?
🔒Est-il sûr de formater des scripts sensibles ici ?
Pro Tips
Exécutez shfmt avant chaque commit pour que votre historique git se concentre sur les vraies modifications, pas sur les espaces.
Combinez `shfmt -d` avec CI pour bloquer les fusions lorsque les scripts ne sont pas correctement formatés.
Associez ce formateur avec ShellCheck pour détecter à la fois les problèmes de style et de logique dans vos scripts shell.
Maintenez vos shebangs (`#!/usr/bin/env bash`) cohérents dans tous vos scripts pour éviter des problèmes de portabilité subtils.
Additional Resources
Other Tools
- Beautificateur CSS
- Beautificateur HTML
- Beautificateur JavaScript
- Beautificateur PHP
- Sélecteur de couleurs
- Extracteur de sprites
- Décodeur Base64
- Encodeur Base64
- Formateur C#
- Formateur CSV
- Dockerfile Formatter
- Formateur Elm
- Formateur ENV
- Formateur Go
- Formateur GraphQL
- Formateur HCL
- Formateur INI
- Formateur JSON
- Formateur LaTeX
- Formateur Markdown
- Formateur Objective-C
- Php Formatter
- Formateur Proto
- Formateur Python
- Formateur Ruby
- Formateur Rust
- Formateur Scala
- Formateur SQL
- Formateur SVG
- Formateur Swift
- Formateur TOML
- Typescript Formatter
- Formateur XML
- Formateur YAML
- Formateur Yarn
- Minificateur CSS
- Html Minifier
- Javascript Minifier
- Minificateur JSON
- Minificateur XML
- Visualiseur d'en-têtes HTTP
- PDF vers Texte
- Testeur d'expressions régulières
- Vérificateur de classement SERP
- Recherche Whois