Yeda AI Tips · #089

English

Pasa tus scripts de shell por ShellCheck primero

Tu asistente de IA escribe bash con los mismos bugs de comillas que tú. Aprendió shell de los mismos scripts que enseñaron a los humanos a escribir rm -rf $DIR/ — y, igual que un humano, te va a entregar código que funciona en el camino feliz y explota con un nombre de archivo con espacios. La solución no es un mejor prompt. Es un pipeline: lint, luego formato, luego pruebas — en ese orden.

Por qué lint antes que pruebas

La mayoría de los bugs de shell no son de lógica. Son defectos estáticos: una expansión de variable sin comillas, una comparación [ ] que falla con cadenas vacías, un bashism dentro de un script #!/bin/sh. Una prueba de comportamiento puede pasar 100 veces mientras una variable sin comillas espera la primera ruta con un espacio.

Esa es la trampa específica de los scripts generados por IA: el modelo produce algo plausible, lo ejecutas una vez, funciona, lo publicas. Un linter lee el script como el shell lo va a parsear, no como resultó ejecutarse — y detecta toda la clase de defectos de una vez, en lugar de un crash a la vez.

ShellCheck es la herramienta estándar: análisis estático para scripts sh/bash, recomendada por la Google Shell Style Guide "para todos los scripts, grandes o pequeños". Cada hallazgo tiene una página wiki con el patrón exacto y su corrección, lo que también la vuelve material perfecto para pegarle de vuelta a tu asistente de IA.

El pipeline de tres etapas

EtapaHerramientaComandoDetecta
1. LintShellCheckshellcheck script.shComillas, portabilidad, código muerto, variables mal escritas
2. Formatoshfmtshfmt -l -w script.shIndentación y layout inconsistentes
3. ComportamientoBatsbats test/Lo que el script realmente hace

Dos hallazgos de ShellCheck justifican todo el esfuerzo por sí solos:

Después, shfmt normaliza el formato (-l lista los archivos que cambiarían, -w reescribe en el lugar), y Bats — un framework de pruebas compatible con TAP para Bash 3.2+ — cubre el comportamiento con archivos .bats, el helper run para invocar comandos y hooks setup/teardown.

Prueba los caminos que la IA nunca imagina

Trucos avanzados

Recursos

¿Estás construyendo una funcionalidad con IA? Yeda AI diseña, audita y entrega sistemas LLM de producción.

Habla con nosotros · Lee el blog