¿Qué hace shellcheck-configuration?
Domina la configuración y el uso del análisis estático de ShellCheck para la calidad de scripts de shell. Útil al configurar infraestructura de linting, corregir problemas en el código o asegurar la portabilidad de los scripts.
Descripción
ShellCheck es una herramienta de análisis estático para scripts de shell que ayuda a identificar errores, malas prácticas y problemas de portabilidad. Este skill proporciona una guía completa para instalar, configurar y utilizar ShellCheck de manera efectiva en tus proyectos.
Instalación
Puedes instalar ShellCheck a través del gestor de paquetes de tu sistema operativo:
# En Ubuntu/Debian
sudo apt-get install shellcheck
# En macOS con Homebrew
brew install shellcheck
# En sistemas basados en Red Hat
sudo yum install shellcheck
# Usando Cargo (Rust)
cargo install shellcheck
Configuración
ShellCheck se puede configurar mediante un archivo .shellcheckrc en el directorio raíz de tu proyecto o en el directorio home del usuario. Aquí hay un ejemplo de configuración:
# .shellcheckrc
# Habilitar todas las comprobaciones por defecto
enable=all
# Establecer el nivel de gravedad mínimo (error, warning, info, style)
severity=style
# Excluir ciertas reglas (por ID de regla)
disable=SC1091,SC2154
# Configurar rutas de búsqueda para archivos fuente
source-path=SCRIPTDIR
source-path=../lib
Opciones de configuración comunes
enable: Habilitar comprobaciones específicas. Usarallpara habilitar todas.disable: Deshabilitar comprobaciones específicas.severity: Establecer el nivel de gravedad mínimo a reportar (error,warning,info,style).source-path: Definir rutas de búsqueda para archivos fuente.external-sources: Permitir la búsqueda de fuentes externas (deshabilitado por defecto).
Uso básico
Ejecutar ShellCheck en un script:
shellcheck myscript.sh
Salida de ejemplo:
In myscript.sh line 6:
echo $nombre
^----^ SC2086: Double quote to prevent globbing and word splitting.
Did you mean:
echo "$nombre"
Opciones de línea de comandos
-s, --shell: Especificar el shell a usar (bash, sh, dash, ksh).-f, --format: Formato de salida (tty, gcc, checkstyle, diff, json, json1).-e, --exclude: Excluir reglas por ID.-i, --include: Incluir solo reglas específicas.
Ejemplo:
shellcheck -s bash -f gcc myscript.sh
Integración en CI/CD
Para integrar ShellCheck en tuberías CI/CD, se recomienda usar la opción --severity=error para fallar solo en errores críticos:
# Ejemplo para GitHub Actions
- name: Run ShellCheck
run: |
shellcheck --severity=error *.sh
Consejos avanzados
- Suprimir advertencias en línea: Usa anotaciones
# shellcheck disable=SCXXXXpara suprimir advertencias específicas en líneas concretas. - Análisis recursivo: Puedes escanear todos los scripts en un directorio con
find . -name "*.sh" -exec shellcheck {} +. - Compatibilidad con shells: Usa la opción
-spara especificar el shell objetivo y evitar falsos positivos.