Por Qué Usar Este Formateador de Scripts de Shell
- Formateo instantáneo para POSIX sh, Bash, mksh y shells relacionados
- Reglas estilo shfmt para indentación, espaciado y bloques case/esac
- Diseñado para soportar opciones como tamaño de indentación, tabs vs espacios y espaciado de redirecciones
- Pega código sin formato o sube archivos `.sh`, `.bash`, `.ksh`, `.mksh` o `.bats`
- Compañero perfecto para pipelines CI/CD, puntos de entrada de Docker y archivos dotfiles
- Formateado mediante un backend seguro que ejecuta lógica estilo shfmt – no requiere instalación local
- Copia o descarga del script limpio con un solo clic
🛠️ Cómo Formatear Tus Scripts de Shell en Línea for shell-script-formatter
1. Pega o Sube Tu Script
📥 Pega tu código de shell en el editor, o arrastra y suelta un archivo `.sh`, `.bash`, `.ksh`, `.mksh` o `.bats`. El resaltado de sintaxis facilita identificar la estructura y comandos.
2. (Opcional) Ajusta Configuraciones Avanzadas
⚙️ Si tu proyecto usa reglas de estilo personalizadas, ajusta la indentación u otras opciones avanzadas cuando estén disponibles en la interfaz. De lo contrario, el perfil predeterminado ya coincide con las prácticas comunes de shfmt.
3. Formatea Tu Script
✨ Haz clic en **Formatear** para enviar tu script a la API de formateo segura. Reescribe la indentación, espaciado y ciertas construcciones mientras preserva el comportamiento.
4. Copia o Descarga el Resultado
📤 Copia el script formateado de vuelta a tu editor, o descárgalo como un archivo `.sh` listo para git, CI o despliegues en producción.
Especificaciones Técnicas
Formatos y Extensiones Soportados
Soporta dialectos de shell estilo Bourne comunes que encuentras en sistemas del mundo real:
| Formato / Dialecto | Extensión Típica | Descripción |
|---|---|---|
| POSIX sh | .sh | Scripts de shell portables compatibles con /bin/sh |
| Bash | .sh, .bash | Scripts de GNU Bash y ayudantes interactivos |
| Korn shell (ksh) | .ksh | Scripts de Korn shell en entornos heredados |
| mksh | .mksh | Scripts de Korn shell de MirBSD |
| Pruebas Bats | .bats | Suites de pruebas basadas en shell usando Bats |
Comportamiento de Formateo (Estilo shfmt)
El formateador backend sigue reglas de estilo shfmt para un diseño de shell consistente.
| Aspecto | Comportamiento | Beneficio |
|---|---|---|
| Sangría | Normaliza la sangría en `if`, `for`, `while`, `case`, funciones y subshells | Más fácil de analizar visualmente el flujo de control y el anidamiento. |
| Espaciado | Agrega espacios alrededor de `=` en asignaciones y alrededor de operadores binarios cuando sea apropiado | Reduce el ruido visual y los errores de análisis accidentales. |
| Redirecciones | Admite espaciado alrededor de `>`, `>>`, `<` según las convenciones de estilo shfmt | Mejora la legibilidad de las redirecciones de archivos. |
| Bloques case | Alinea `case`, ramas de patrones y `esac` consistentemente | Evita sentencias case profundamente anidadas o comprimidas. |
| Salida idempotente | Ejecutar el formateador nuevamente produce el mismo resultado | Permite una integración segura en hooks de pre-commit y CI. |
Límites y Tamaño de Entrada
Diseñado para ser rápido y predecible incluso en scripts no triviales.
| Parámetro | Límite / Comportamiento | Notas |
|---|---|---|
| Tamaño máximo de entrada (texto) | ≈ 2 MB | Los scripts más grandes que esto es mejor formatearlos localmente con shfmt. |
| Tamaño máximo de archivo (subida) | ≈ 5 MB | Ideal para la mayoría de scripts de implementación y colecciones de utilidades. |
| Codificación | UTF-8 recomendado | Convierta codificaciones heredadas como ISO-8859-1 antes del formateo. |
Modelo de Ejecución
El formateador se ejecuta a través de un backend seguro usando lógica de estilo shfmt.
| Aspecto | Comportamiento | Notas |
|---|---|---|
| Transporte | Llamada HTTPS al endpoint `/api/shell-script-formatter` | Evita la interceptación mientras se formatea tu script. |
| Tiempo de espera | ~25 segundos por solicitud | Evita trabajos descontrolados en entradas extremadamente grandes o patológicas. |
| Semántica | Solo espacios en blanco y diseño | Tu lógica de script se conserva; solo se cambia el formato. |
Equivalente CLI con shfmt
¿Quieres el mismo comportamiento en tu terminal o pipeline de CI? Usa `shfmt` directamente:
Linux / 🍎 macOS / 🪟 Windows (vía WSL o Go)
Instalar shfmt usando Go
go install mvdan.cc/sh/v3/cmd/shfmt@latestInstala el binario `shfmt` en tu directorio bin de Go (ej. `~/go/bin`).
Formatear un archivo shell con sangría de 2 espacios
shfmt -i 2 -w script.shSobrescribe `script.sh` con una salida formateada consistentemente.
Formatear e imprimir a stdout
shfmt -i 4 script.shUsa sangría de 4 espacios e imprime a stdout sin modificar el archivo.
Verificar formato en CI (sin cambios)
shfmt -d scripts/Muestra un diff para archivos que serían reformateados; sale con código no cero si se necesitan cambios.
Casos de Uso Prácticos para Formateo de Shell
DevOps y Pipelines CI/CD
Mantén scripts críticos legibles, revisables y seguros para producción.
- Limpia scripts de despliegue y reversión antes de fusionar a `main`.
- Normaliza ganchos en `.git/hooks`, `scripts/` y ayudantes de CI.
- Formatea puntos de entrada de Docker y scripts de arranque de contenedores.
shfmt -i 2 -w ./scripts/deploy.shshfmt -i 2 -w ./scripts/*.shColaboración en Equipo y Código Abierto
Evita discusiones de estilo y enfócate en la lógica en las revisiones.
- Aplicar un solo estilo en todos los scripts de shell de los colaboradores.
- Facilitar la incorporación manteniendo archivos de configuración y ayudas ordenados.
- Reducir diferencias ruidosas estandarizando la indentación y el espaciado.
shfmt -w hooks/*.shshfmt -i 2 -ci -bn -w .Aprendizaje y Enseñanza de Scripting en Shell
Mostrar las mejores prácticas a estudiantes y desarrolladores junior.
- Limpiar ejemplos antes de incluirlos en diapositivas o documentación.
- Formatear automáticamente las entregas de estudiantes para centrar la retroalimentación en la semántica.
- Demostrar cómo el diseño afecta la legibilidad y la detección de errores.
❓ Frequently Asked Questions
🔍¿Qué es shfmt?
⚙️¿Puedo elegir cuántos espacios usar para la indentación?
🚫¿Esta herramienta web sobrescribe mi archivo?
💬¿Entiende la sintaxis específica de Bash?
🔒¿Es seguro formatear scripts sensibles aquí?
Pro Tips
Ejecuta shfmt antes de cada commit para que tu historial de git se centre en cambios reales, no en espacios en blanco.
Combina `shfmt -d` con CI para bloquear fusiones cuando los scripts no estén correctamente formateados.
Combina este formateador con ShellCheck para detectar tanto problemas de estilo como de lógica en tus scripts de shell.
Mantén tus shebangs (`#!/usr/bin/env bash`) consistentes en todos los scripts para evitar problemas de portabilidad sutiles.
Additional Resources
Other Tools
- Embellecedor CSS
- Embellecedor HTML
- Embellecedor JavaScript
- Embellecedor PHP
- Selector de Color
- Extractor de Sprites
- Decodificador Base64
- Codificador Base64
- Formateador C#
- Formateador CSV
- Dockerfile Formatter
- Formateador Elm
- Formateador ENV
- Formateador Go
- Formateador GraphQL
- Formateador HCL
- Formateador INI
- Formateador JSON
- Formateador LaTeX
- Formateador Markdown
- Formateador Objective-C
- Php Formatter
- Formateador Proto
- Formateador Python
- Formateador Ruby
- Formateador Rust
- Formateador Scala
- Formateador SQL
- Formateador SVG
- Formateador Swift
- Formateador TOML
- Typescript Formatter
- Formateador XML
- Formateador YAML
- Formateador Yarn
- Minificador CSS
- Html Minifier
- Javascript Minifier
- Minificador JSON
- Minificador XML
- Visor de Encabezados HTTP
- PDF a Texto
- Probador de Expresiones Regulares
- Verificador de Posición en SERP
- Consulta Whois