Loading…

Acerca de Formateador de Scripts de Shell en Línea

Pega tu script de shell, presiona "Formatear" y obtén una salida limpia y consistente impulsada por `shfmt`. Ideal para pipelines de DevOps, dotfiles, puntos de entrada de contenedores y scripts de despliegue listos para producción. Sin instalación, sin inicio de sesión – solo código shell legible listo para confirmar.

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

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

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

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

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 / DialectoExtensión TípicaDescripción
POSIX sh.shScripts de shell portables compatibles con /bin/sh
Bash.sh, .bashScripts de GNU Bash y ayudantes interactivos
Korn shell (ksh).kshScripts de Korn shell en entornos heredados
mksh.mkshScripts de Korn shell de MirBSD
Pruebas Bats.batsSuites 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.

AspectoComportamientoBeneficio
SangríaNormaliza la sangría en `if`, `for`, `while`, `case`, funciones y subshellsMás fácil de analizar visualmente el flujo de control y el anidamiento.
EspaciadoAgrega espacios alrededor de `=` en asignaciones y alrededor de operadores binarios cuando sea apropiadoReduce el ruido visual y los errores de análisis accidentales.
RedireccionesAdmite espaciado alrededor de `>`, `>>`, `<` según las convenciones de estilo shfmtMejora la legibilidad de las redirecciones de archivos.
Bloques caseAlinea `case`, ramas de patrones y `esac` consistentementeEvita sentencias case profundamente anidadas o comprimidas.
Salida idempotenteEjecutar el formateador nuevamente produce el mismo resultadoPermite 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ámetroLímite / ComportamientoNotas
Tamaño máximo de entrada (texto)≈ 2 MBLos scripts más grandes que esto es mejor formatearlos localmente con shfmt.
Tamaño máximo de archivo (subida)≈ 5 MBIdeal para la mayoría de scripts de implementación y colecciones de utilidades.
CodificaciónUTF-8 recomendadoConvierta 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.

AspectoComportamientoNotas
TransporteLlamada HTTPS al endpoint `/api/shell-script-formatter`Evita la interceptación mientras se formatea tu script.
Tiempo de espera~25 segundos por solicitudEvita trabajos descontrolados en entradas extremadamente grandes o patológicas.
SemánticaSolo espacios en blanco y diseñoTu 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@latest

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

Sobrescribe `script.sh` con una salida formateada consistentemente.

Formatear e imprimir a stdout

shfmt -i 4 script.sh

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

Agrega un paso `shfmt -d` en tu pipeline de CI o un gancho pre-commit para que cada script se mantenga limpio y consistente automáticamente.

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

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

`shfmt` es un formateador de línea de comandos de código abierto para scripts de shell creado por mvdan. Analiza tu código de shell y lo reescribe con indentación, espaciado y estructura consistentes para POSIX sh, Bash y dialectos similares.

⚙️¿Puedo elegir cuántos espacios usar para la indentación?

Sí. En el uso de CLI puedes controlar la indentación con la bandera `-i` (por ejemplo `-i 2` o `-i 4`). Esta herramienta en línea está diseñada para soportar preferencias de indentación equivalentes a través de su backend de formateo.

🚫¿Esta herramienta web sobrescribe mi archivo?

No. El formateador devuelve el script limpio en el navegador. Tú decides si copiarlo en tu editor o descargarlo como un nuevo archivo. Tus originales permanecen intactos a menos que los sobrescribas tú mismo.

💬¿Entiende la sintaxis específica de Bash?

Sí. El motor subyacente de estilo shfmt soporta construcciones comunes de Bash así como POSIX sh, además de otros shells como mksh y ksh.

🔒¿Es seguro formatear scripts sensibles aquí?

Para scripts de propósito general, esta herramienta es conveniente y segura. Para scripts que contengan datos altamente sensibles (secretos incrustados, detalles de infraestructura interna, etc.), suele ser más seguro ejecutar shfmt localmente o dentro de tu propio entorno de CI.

Pro Tips

Best Practice

Ejecuta shfmt antes de cada commit para que tu historial de git se centre en cambios reales, no en espacios en blanco.

Best Practice

Combina `shfmt -d` con CI para bloquear fusiones cuando los scripts no estén correctamente formateados.

Best Practice

Combina este formateador con ShellCheck para detectar tanto problemas de estilo como de lógica en tus scripts de shell.

Best Practice

Mantén tus shebangs (`#!/usr/bin/env bash`) consistentes en todos los scripts para evitar problemas de portabilidad sutiles.

Additional Resources

Other Tools