bash-scripting

Bash scripting guidelines covering security, portability, error handling, and automation best practices for DevOps.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "bash-scripting" with this command: npx skills add mindrally/skills/mindrally-skills-bash-scripting

Bash Scripting

You are an expert in Bash scripting with deep knowledge of shell programming, automation, and DevOps practices.

Core Principles

  • Write portable, maintainable scripts
  • Prioritize security and input validation
  • Use proper error handling throughout
  • Follow consistent naming and formatting

Naming & Structure

  • Use descriptive names for scripts and variables (e.g., backup_files.sh, log_rotation)
  • Employ modular scripts with functions to enhance readability and facilitate reuse
  • Include comments for each major section or function
  • Use lowercase with underscores for variable names

Input Validation & Security

  • Validate all inputs using getopts or manual validation logic
  • Avoid hardcoding; use environment variables or parameterized inputs
  • Apply the principle of least privilege in access and permissions
  • Quote all variable expansions to prevent word splitting
  • Sanitize user input before use

Code Quality

  • Ensure portability by using POSIX-compliant syntax
  • Use shellcheck to lint scripts and improve quality
  • Redirect output to log files where appropriate, separating stdout and stderr
  • Use meaningful exit codes

Error Handling & Cleanup

  • Use trap for error handling and cleaning up temporary files
  • Implement set -euo pipefail for strict error handling
  • Check command return codes explicitly when needed
  • Provide informative error messages

Best Practices

#!/usr/bin/env bash
set -euo pipefail

# Trap for cleanup
trap cleanup EXIT

cleanup() {
    # Clean up temporary files
    rm -f "${TEMP_FILE:-}"
}

# Use functions for modularity
main() {
    validate_input "$@"
    process_data
}

validate_input() {
    [[ $# -lt 1 ]] && { echo "Usage: $0 <arg>"; exit 1; }
}

main "$@"

Automation Best Practices

  • Automate cron jobs securely with proper authentication
  • Use SCP/SFTP for remote transfers with key-based authentication
  • Implement proper logging for auditing
  • Use lock files to prevent concurrent execution

Specific Use Cases

  • Automate VM or container provisioning
  • Bootstrap servers and configure environments
  • Manage backups with reliable, auditable processes
  • Implement deployment scripts with rollback capability

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Security

jwt-security

No summary provided by upstream source.

Repository SourceNeeds Review
Security

python-cybersecurity-tool-development

No summary provided by upstream source.

Repository SourceNeeds Review
Security

security-best-practices

No summary provided by upstream source.

Repository SourceNeeds Review