Smithery Logo
MCPsSkillsDocsPricing
Login
NewFlame, an assistant that learns and improves. Available onTelegramSlack
    wshobson

    bash-defensive-patterns

    wshobson/bash-defensive-patterns
    Coding
    28,185

    About

    SKILL.md

    Install

    • Telegram
      Telegram
    • Slack
      Slack
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    • Download skill
    ├─
    ├─
    └─
    Smithery Logo

    Give agents more agency

    Resources

    DocumentationPrivacy PolicySystem Status

    Company

    PricingAboutBlog

    Connect

    © 2026 Smithery. All rights reserved.

    About

    Master defensive Bash programming techniques for production-grade scripts. Use when writing robust shell scripts, CI/CD pipelines, or system utilities requiring fault tolerance and safety.

    SKILL.md

    Bash Defensive Patterns

    Comprehensive guidance for writing production-ready Bash scripts using defensive programming techniques, error handling, and safety best practices to prevent common pitfalls and ensure reliability.

    When to Use This Skill

    • Writing production automation scripts
    • Building CI/CD pipeline scripts
    • Creating system administration utilities
    • Developing error-resilient deployment automation
    • Writing scripts that must handle edge cases safely
    • Building maintainable shell script libraries
    • Implementing comprehensive logging and monitoring
    • Creating scripts that must work across different platforms

    Detailed patterns and worked examples

    Detailed pattern documentation lives in references/details.md. Read that file when the navigation tier above is insufficient.

    Best Practices Summary

    1. Always use strict mode - set -Eeuo pipefail
    2. Quote all variables - "$variable" prevents word splitting
    3. Use [[]] conditionals - More robust than [ ]
    4. Implement error trapping - Catch and handle errors gracefully
    5. Validate all inputs - Check file existence, permissions, formats
    6. Use functions for reusability - Prefix with meaningful names
    7. Implement structured logging - Include timestamps and levels
    8. Support dry-run mode - Allow users to preview changes
    9. Handle temporary files safely - Use mktemp, cleanup with trap
    10. Design for idempotency - Scripts should be safe to rerun
    11. Document requirements - List dependencies and minimum versions
    12. Test error paths - Ensure error handling works correctly
    13. Use command -v - Safer than which for checking executables
    14. Prefer printf over echo - More predictable across systems
    Recommended Servers
    OpenZeppelin
    OpenZeppelin
    Codeinterpreter
    Codeinterpreter
    Context7
    Context7
    Repository
    wshobson/agents
    Files