Предотвратите распространённые ошибки в shell-скриптах с помощью паттернов защищённого программирования. Этот навык предоставляет готовые к продакшену шаблоны для обработки ошибок, валидации входных данных и безопасных операций с файлами, которые защищают вашу автоматизацию от граничных случаев и неожиданных сбоев.
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“bash-defensive-patterns”。 Create a script that rotates log files older than 7 days with error handling
预期结果:
Скрипт будет включать: конфигурацию строгого режима (set -Eeuo pipefail), валидацию директории логов, команду find с правильной обработкой ошибок, создание сжатого архива, атомарные операции с файлами, ловушки очистки для временных файлов и структурированное логирование, показывающее прогресс ротации и любые возникшие ошибки.
正在使用“bash-defensive-patterns”。 Build a deployment script with rollback capability
预期结果:
Сгенерированный скрипт включает: парсинг аргументов для флагов окружения и версии, предварительные проверки зависимостей, создание резервной копии текущего развёртывания перед изменениями, атомарное переключение через symlink для развёртывания без простоя, функцию отката для восстановления из резервной копии, комплексное логирование на каждом шаге и обработчики ошибок, которые автоматически запускают откат при сбое.
正在使用“bash-defensive-patterns”。 Write a script that monitors processes and sends alerts
预期结果:
Скрипт мониторинга включает: проверку состояния процессов через kill -0, настраиваемый список имён процессов, конфигурацию пороговых значений оповещений, логику повторных попыток с экспоненциальной задержкой, заглушки функций уведомлений (email/slack), обработку сигналов для плавного завершения, отслеживание фоновых процессов с массивом PID и структурированное логирование с временными метками для аудиторских логов.
安全审计
安全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.
质量评分
你能构建什么
Скрипты для DevOps-пайплайнов
Создавайте скрипты CI/CD-пайплайнов с правильной обработкой ошибок, логированием и идемпотентными операциями, которые безопасно завершаются и предоставляют понятные сообщения об ошибках.
Утилиты системного администрирования
Создавайте скрипты обслуживания, которые обрабатывают граничные случаи, валидируют входные данные и включают обработчики очистки для предотвращения повреждения системы при сбоях автоматизации.
Скрипты инструментов разработки
Пишите инструменты повышения производительности разработчика с парсингом аргументов, поддержкой dry-run и комплексным логированием для отладки проблем в продакшене.
试试这些提示
Create a Bash script that backs up a directory to a backup location. Use strict mode, error trapping, and validate that both directories exist before proceeding.
Write a Bash script that accepts input/output file arguments with --input and --output flags. Include argument validation, help text, structured logging, and support dry-run mode.
Create a Bash script that manages background processes with signal handlers for graceful shutdown. Track PIDs, implement cleanup traps, and handle SIGTERM/SIGINT properly.
Write a Bash setup script that creates directories, config files, and services. Design it to be idempotent - safe to run multiple times without causing duplicate resources or errors.
最佳实践
- Всегда включайте строгий режим с 'set -Eeuo pipefail' в начале скриптов для раннего обнаружения ошибок
- Заключайте все расширения переменных в кавычки для предотвращения проблем с разбиением слов и globbing
- Используйте [[ ]] вместо [ ] для условных выражений, чтобы включить более безопасное сопоставление с образцом и предотвратить неожиданное разбиение слов
避免
- Не используйте незаключённые в кавычки переменные, например 'cp $source $dest' — это вызывает разбиение слов в именах файлов с пробелами
- Избегайте использования обратных кавычек для подстановки команд — предпочитайте современный синтаксис '$()' для лучшего вложения и читаемости
- Никогда не используйте 'set -e' отдельно без понимания pipefail — всегда используйте 'set -Eeuo pipefail' вместе для полной обработки ошибок