Loading…

À propos Formateur de Scripts Shell en Ligne

Collez votre script shell, appuyez sur "Formater" et obtenez une sortie propre et cohérente propulsée par `shfmt`. Idéal pour les pipelines DevOps, les dotfiles, les points d'entrée de conteneurs et les scripts de déploiement prêts pour la production. Aucune installation, aucune connexion – juste du code shell lisible prêt à être validé.

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

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

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

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

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 / DialecteExtension TypiqueDescription
sh POSIX.shScripts shell portables compatibles avec /bin/sh
Bash.sh, .bashScripts GNU Bash et aides interactives
Korn shell (ksh).kshScripts Korn shell dans les environnements hérités
mksh.mkshScripts Korn shell MirBSD
Tests Bats.batsSuites 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.

AspectComportementAvantage
IndentationNormalise l'indentation sur `if`, `for`, `while`, `case`, les fonctions et les sous-shellsFacilite l'analyse visuelle du flux de contrôle et de l'imbrication.
EspacementAjoute 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.
RedirectionsPrend en charge l'espacement autour de `>`, `>>`, `<` selon les conventions de style shfmtAméliore la lisibilité des redirections de fichiers.
Blocs caseAligne `case`, les branches de motifs et `esac` de manière cohérenteÉvite les instructions case profondément imbriquées ou compressées.
Sortie idempotenteExécuter à nouveau le formateur donne le même résultatPermet 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ètreLimite / ComportementNotes
Taille maximale d'entrée (texte)≈ 2 MoLes scripts plus volumineux sont mieux formatés localement avec shfmt.
Taille maximale de fichier (téléchargement)≈ 5 MoIdéal pour la plupart des scripts de déploiement et collections d'utilitaires.
EncodageUTF-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.

AspectComportementNotes
TransportAppel 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émantiqueUniquement les espaces et la mise en pageLa 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@latest

Installe 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.sh

Utilise 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.

Ajoutez une étape `shfmt -d` dans votre pipeline CI ou un hook pre-commit pour que chaque script reste propre et cohérent automatiquement.

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.sh
shfmt -i 2 -w ./scripts/*.sh

Collaboration 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/*.sh
shfmt -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 ?

`shfmt` est un formateur en ligne de commande open-source pour les scripts shell créé par mvdan. Il analyse votre code shell et le réécrit avec une indentation, un espacement et une structure cohérents pour sh POSIX, Bash et dialectes similaires.

⚙️Puis-je choisir le nombre d'espaces pour l'indentation ?

Oui. En utilisation CLI, vous pouvez contrôler l'indentation avec l'option `-i` (par exemple `-i 2` ou `-i 4`). Cet outil en ligne est conçu pour supporter des préférences d'indentation équivalentes via son backend de formatage.

🚫Cet outil web écrase-t-il mon fichier ?

Non. Le formateur retourne le script nettoyé dans le navigateur. Vous décidez de le copier dans votre éditeur ou de le télécharger comme nouveau fichier. Vos originaux restent intacts sauf si vous les écrasez vous-même.

💬Comprend-il la syntaxe spécifique à Bash ?

Oui. Le moteur sous-jacent de style shfmt supporte les constructions courantes de Bash ainsi que sh POSIX, plus d'autres shells comme mksh et ksh.

🔒Est-il sûr de formater des scripts sensibles ici ?

Pour les scripts à usage général, cet outil est pratique et sécurisé. Pour les scripts contenant des données hautement sensibles (secrets intégrés, détails d'infrastructure interne, etc.), il est généralement plus sûr d'exécuter shfmt localement ou dans votre propre environnement CI.

Pro Tips

Best Practice

Exécutez shfmt avant chaque commit pour que votre historique git se concentre sur les vraies modifications, pas sur les espaces.

Best Practice

Combinez `shfmt -d` avec CI pour bloquer les fusions lorsque les scripts ne sont pas correctement formatés.

Best Practice

Associez ce formateur avec ShellCheck pour détecter à la fois les problèmes de style et de logique dans vos scripts shell.

Best Practice

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