¿Qué hace bash-defensive-patterns?
Domina las técnicas de programación defensiva en Bash para scripts de nivel de producción. Útil al escribir scripts robustos, pipelines de CI/CD o utilidades del sistema que requieren tolerancia a fallos y seguridad.
Introducción
Este skill te guía a través de patrones y técnicas esenciales para escribir scripts en Bash que sean resistentes a errores, fáciles de mantener y seguros para su uso en entornos de producción.
Características clave
- Configuración estricta: Uso de flags como
set -euo pipefailpara detener el script ante errores inesperados. - Manejo de trampas (trap): Captura de señales (
EXIT,ERR,INT) para limpiar recursos de forma segura. - Validación de entrada: Verificación de argumentos, variables de entorno y archivos antes de su uso.
- Logging estructurado: Funciones para mensajes informativos, de advertencia y error con marcas de tiempo.
- Funciones de limpieza: Patrones para eliminar archivos temporales y restaurar el estado original.
- Compatibilidad con CI/CD: Integración sencilla con GitHub Actions, GitLab CI y Jenkins.
Ejemplo práctico
#!/bin/bash
set -euo pipefail
# Función de logging
log() {
echo "[$(date +%Y-%m-%dT%H:%M:%S)] $*"
}
# Función de limpieza
cleanup() {
log "Limpiando recursos..."
rm -f /tmp/script_temp_*
}
trap cleanup EXIT
# Validación de argumentos
if [ $# -lt 1 ]; then
log "ERROR: Se requiere al menos un argumento."
exit 1
fi
log "Procesando argumento: $1"
Plataformas compatibles
- Linux (todas las distribuciones con Bash)
- macOS (a través de Terminal)
- WSL (Windows Subsystem for Linux)
- CI/CD: GitHub Actions, GitLab CI, Jenkins
Mejores prácticas
- Usa
set -euo pipefailal inicio de cada script. - Siempre valida las entradas antes de usarlas.
- Implementa trampas para limpiar recursos.
- Escribe funciones reutilizables para logging y validación.
- Documenta las variables de entorno esperadas.
Referencias
Skill creado por wshobson