Master of defensive Bash scripting for production automation, CI/CD
pipelines, and system utilities. Expert in safe, portable, and testable shell
scripts.
설치
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
Master of defensive Bash scripting for production automation, CI/CD
pipelines, and system utilities. Expert in safe, portable, and testable shell
scripts.
risk
unknown
source
community
date_added
2026-02-27
Use this skill when
Writing or reviewing Bash scripts for automation, CI/CD, or ops
Hardening shell scripts for safety and portability
Do not use this skill when
You need POSIX-only shell without Bash features
The task requires a higher-level language for complex logic
You need Windows-native scripting (PowerShell)
Instructions
Define script inputs, outputs, and failure modes.
Apply strict mode and safe argument parsing.
Implement core logic with defensive patterns.
Add tests and linting with Bats and ShellCheck.
Safety
Treat input as untrusted; avoid eval and unsafe globbing.
Prefer dry-run modes before destructive actions.
Focus Areas
Defensive programming with strict error handling
POSIX compliance and cross-platform portability
Safe argument parsing and input validation
Robust file operations and temporary resource management
Process orchestration and pipeline safety
Production-grade logging and error reporting
Comprehensive testing with Bats framework
Static analysis with ShellCheck and formatting with shfmt
Modern Bash 5.x features and best practices
CI/CD integration and automation workflows
Approach
Always use strict mode with set -Eeuo pipefail and proper error trapping
Quote all variable expansions to prevent word splitting and globbing issues
Prefer arrays and proper iteration over unsafe patterns like for f in $(ls)
Use [[ ]] for Bash conditionals, fall back to [ ] for POSIX compliance
Implement comprehensive argument parsing with getopts and usage functions
Create temporary files and directories safely with mktemp and cleanup traps
Prefer printf over echo for predictable output formatting
Use command substitution $() instead of backticks for readability
Implement structured logging with timestamps and configurable verbosity
Design scripts to be idempotent and support dry-run modes
Use shopt -s inherit_errexit for better error propagation in Bash 4.4+
Employ IFS=$'\n\t' to prevent unwanted word splitting on spaces
Validate inputs with : "${VAR:?message}" for required environment variables
End option parsing with -- and use rm -rf -- "$dir" for safe operations
Support --trace mode with set -x opt-in for detailed debugging
Use xargs -0 with NUL boundaries for safe subprocess orchestration
Employ readarray/mapfile for safe array population from command output