المهارات bash-defensive-patterns
🛡️

bash-defensive-patterns

آمن

Escribe Scripts de Bash a Prueba de Fallos

متاح أيضًا من: wshobson

Previene fallos comunes en scripts de shell con patrones de programación defensiva. Esta habilidad proporciona plantillas listas para producción para manejo de errores, validación de entrada y operaciones de archivos seguras que protegen tu automatización contra casos extremos y fallos inesperados.

يدعم: Claude Codex Code(CC)
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "bash-defensive-patterns". Crea un script que rote archivos de registro de más de 7 días con manejo de errores

النتيجة المتوقعة:

El script incluirá: configuración de modo estricto (set -Eeuo pipefail), validación del directorio de registros, comando find con manejo adecuado de errores, creación de archivos comprimidos, operaciones atómicas de archivos, traps de limpieza para archivos temporales y registro estructurado que muestra el progreso de la rotación y cualquier error encontrado.

استخدام "bash-defensive-patterns". Construye un script de despliegue con capacidad de reversión

النتيجة المتوقعة:

Características del script generado: análisis de argumentos para opciones de entorno y versión, verificaciones previas de dependencias, creación de copia de seguridad del despliegue actual antes de los cambios, cambio de enlaces simbólicos atómicos para despliegue sin tiempo de inactividad, función de reversión para restaurar desde la copia de seguridad, registro exhaustivo en cada paso y manejadores de errores que activan automáticamente la reversión en caso de fallo.

استخدام "bash-defensive-patterns". Escribe un script que monitoree procesos y envíe alertas

النتيجة المتوقعة:

El script de monitoreo incluye: verificación de salud de procesos usando kill -0, lista configurable de nombres de procesos, configuración de umbrales de alerta, lógica de reintento con retroceso exponencial, marcadores de posición para funciones de notificación (email/slack), manejo de señales para apagado elegante, rastreo de procesos en segundo plano con array de PIDs y registro estructurado con marcas de tiempo para auditoría.

التدقيق الأمني

آمن
v1 • 2/25/2026

All 106 static findings are false positives. The skill contains only markdown documentation with code examples demonstrating defensive Bash programming techniques. Command execution patterns, cryptographic references, and file operations are educational examples showing SAFE practices, not executable code. No prompt injection or malicious intent detected.

2
الملفات التي تم فحصها
564
الأسطر التي تم تحليلها
0
النتائج
1
إجمالي عمليات التدقيق
لا توجد مشكلات أمنية
تم تدقيقه بواسطة: claude

ماذا يمكنك بناءه

Scripts de Pipeline de DevOps

Crea scripts de pipeline CI/CD con manejo de errores, registro y operaciones idempotentes que fallan de manera segura y proporcionan mensajes de error claros.

Utilidades de Administración de Sistemas

Construye scripts de mantenimiento que manejan casos extremos, validan entradas e incluyen manejadores de limpieza para prevenir la corrupción del sistema por fallos de automatización.

Scripts de Herramientas de Desarrollo

Escribe herramientas de productividad para desarrolladores con análisis de argumentos, soporte de ejecución en seco y registro exhaustivo para depurar problemas de producción.

جرّب هذه الموجهات

Script Seguro Básico
Crea un script de Bash que haga una copia de seguridad de un directorio en una ubicación de respaldo. Usa modo estricto, captura de errores y valida que ambos directorios existan antes de continuar.
Herramienta CLI Lista para Producción
Escribe un script de Bash que acepte argumentos de archivos de entrada/salida con las opciones --input y --output. Incluye validación de argumentos, texto de ayuda, registro estructurado y soporte para modo de ejecución en seco.
Script de Gestor de Procesos
Crea un script de Bash que gestione procesos en segundo plano con manejadores de señales para apagado elegante. Rastrea los PIDs, implementa traps de limpieza y maneja SIGTERM/SIGINT correctamente.
Script de Configuración Idempotente
Escribe un script de configuración de Bash que cree directorios, archivos de configuración y servicios. Diseñalo para que sea idempotente: seguro de ejecutar múltiples veces sin causar recursos duplicados ni errores.

أفضل الممارسات

  • Always enable strict mode with 'set -Eeuo pipefail' at the start of scripts to catch errors early
  • Quote all variable expansions to prevent word splitting and globbing issues
  • Use [[ ]] instead of [ ] for conditionals to enable safer pattern matching and prevent unexpected word splitting

تجنب

  • Do not use unquoted variables like 'cp $source $dest' - this causes word splitting on filenames with spaces
  • Avoid using backticks for command substitution - prefer the modern '$()' syntax for better nesting and readability
  • Never use 'set -e' alone without understanding pipefail - always use 'set -Eeuo pipefail' together for complete error handling

الأسئلة المتكررة

¿Por qué esta habilidad recomienda el modo estricto cuando hace que los scripts se exitan en los errores?
El modo estricto evita que pequeños errores se conviertan en problemas mayores más adelante. Detiene la ejecución inmediatamente cuando los comandos fallan, las variables están indefinidas o las tuberías se rompen, haciendo que la depuración sea mucho más fácil y previniendo la corrupción de datos al continuar con un estado incorrecto.
¿Puedo usar estos patrones con POSIX sh en lugar de Bash?
Muchos patrones como entrecomillar variables y la captura de errores funcionan en POSIX sh, pero algunas características específicas de Bash como los condicionales [[ ]] y los arrays requieren Bash 4.0+. Para compatibilidad estricta con POSIX, usa [ ] en lugar de [[ ]] y evita los arrays.
¿Cuál es la diferencia entre [ ] y [[ ]] en los condicionales?
Los corchetes dobles [[ ]] son específicos de Bash y proporcionan un manejo más seguro de caracteres especiales, previenen la división de palabras y admiten coincidencia de patrones con == y expresiones regulares con =~. Los corchetes simples [ ] son estándar POSIX pero requieren más entrecomillado y tienen un comportamiento menos intuitivo.
¿Por qué debo usar 'command -v' en lugar de 'which' para verificar comandos?
El comando integrado 'command -v' es estándar POSIX, funciona de manera consistente en todos los shells y no requiere procesos externos. El comando 'which' no está disponible en todos los sistemas y puede producir resultados inconsistentes dependiendo del sistema operativo.
¿Cómo manejo fallos de script que deberían ser no fatales?
Usa '|| true' después de comandos que pueden fallar legítimamente, o envuelve los comandos en declaraciones if para verificar su estado de salida explícitamente. Para lógica más compleja, puedes deshabilitar temporalmente el modo estricto en bloques específicos usando 'set +e' y volver a habilitarlo con 'set -e'.
¿Qué es la idempotencia y por qué es importante para los scripts de shell?
La idempotencia significa que un script produce el mismo resultado ya sea que se ejecute una vez o múltiples veces. Esto es crítico para la confiabilidad: si un script falla a mitad de camino y se vuelve a ejecutar, no debería crear recursos duplicados, fallar en elementos existentes ni dejar el sistema en un estado inconsistente.

تفاصيل المطور

بنية الملفات