Un linter y formateador de código Python ultrarrápido, escrito en Rust, con más de 900 reglas de lint y formato compatible con Black.
koalaman/shellcheck
Herramienta de análisis estático que detecta errores, problemas de portabilidad y malas prácticas en scripts de shell bash y sh.
- Estrellas
- 40,298
- Forks
- 1,973
- Issues abiertos
- 1,090
- Último commit
- hace 4 horas
¿Qué es?
ShellCheck analiza scripts de shell e informa sobre errores de sintaxis, problemas semánticos y errores sutiles que pueden hacer que un script se comporte de forma inesperada o falle más adelante. Está pensado para scripts bash y sh, y señala problemas como variables sin comillas, operadores de prueba mal usados, patrones incorrectos de find o grep y códigos de salida ocultos, con una explicación para cada advertencia.
Se puede usar en shellcheck.net, desde la línea de comandos o en editores como Vim, Emacs, Sublime, VS Code y Pulsar. La salida puede ser texto sin formato, JSON, XML de CheckStyle o mensajes al estilo de GCC; además, los códigos de salida permiten hacer que una compilación o ejecución de pruebas falle cuando aparecen advertencias.
ShellCheck está escrito en Haskell y se distribuye bajo la licencia GPL-3.0. Está disponible en la mayoría de los gestores de paquetes de sistemas, en Docker y conda, y como binarios precompilados para Linux, macOS y Windows.
Funciones clave
- 01Detecta errores de comillas, condicionales incorrectas y comandos mal usados en scripts bash y sh.
- 02Señala problemas de portabilidad según el shebang del script, de forma similar a checkbashisms.
- 03Explica cada advertencia e incluye enlaces a páginas detalladas de la wiki.
- 04Se integra con muchos editores y servicios de CI.
- 05Genera texto, JSON, XML de CheckStyle o mensajes compatibles con GCC.
Casos de uso
- Analizar scripts de shell en un pipeline de CI para que las compilaciones fallen si aparecen nuevas advertencias.
- Detectar variables sin comillas y patrones peligrosos de rm o find antes de ejecutar un script.
- Comprobar que un script escrito para /bin/sh no dependa de funciones exclusivas de bash.
- Recibir comentarios en línea mientras se editan scripts de shell en el editor.
Inicio rápido
- 1
Instala ShellCheck con Homebrew
brew install shellcheck - 2
Ejecuta ShellCheck en un script
shellcheck yourscript
Antes de usarlo
- Se distribuye bajo la licencia GPL-3.0, una licencia copyleft.
- Compilar desde el código fuente requiere aproximadamente 2 GB de RAM.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es shellcheck?
- Herramienta de análisis estático que detecta errores, problemas de portabilidad y malas prácticas en scripts de shell bash y sh. ShellCheck analiza scripts de shell e informa sobre errores de sintaxis, problemas semánticos y errores sutiles que pueden hacer que un script se comporte de forma inesperada o falle más adelante. Está pensado para scripts bash y sh, y señala problemas como variables sin comillas, operadores de prueba mal usados, patrones incorrectos de find o grep y códigos de salida ocultos, con una explicación para cada advertencia.
- ¿shellcheck es gratuito? ¿Qué licencia tiene?
- shellcheck es open source bajo la licencia GPL-3.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿shellcheck sigue mantenido?
- Mantenimiento activo. El último commit de shellcheck fue el 7 nov 2026.
- ¿Para qué puedo usar shellcheck?
- Analizar scripts de shell en un pipeline de CI para que las compilaciones fallen si aparecen nuevas advertencias. Detectar variables sin comillas y patrones peligrosos de rm o find antes de ejecutar un script. Comprobar que un script escrito para /bin/sh no dependa de funciones exclusivas de bash. Recibir comentarios en línea mientras se editan scripts de shell en el editor.
- ¿Cómo se instala shellcheck?
- Instala ShellCheck con Homebrew: brew install shellcheck Ejecuta ShellCheck en un script: shellcheck yourscript
- ¿Dónde consigo shellcheck?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/koalaman/shellcheck
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Un linter extensible para ECMAScript/JavaScript que detecta patrones problemáticos en el código y puede corregir muchos de ellos automáticamente.
Un linter para Rust con más de 800 reglas que detecta errores comunes y sugiere código más idiomático; se ejecuta como subcomando de cargo.
Analizador estático y formateador de código Ruby que aplica las reglas de la Ruby Style Guide de la comunidad y corrige automáticamente muchas infracciones.
Analizador estático de código Python que detecta errores, aplica estándares de codificación y señala malos olores de código sin ejecutarlo.
Un linter rápido y configurable para Go, compatible con golint y con soporte para reglas y formateadores de salida personalizados.