Agent Skills

bash-scripting

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

Install

npx skills add https://github.com/mindrally/skills --skill bash-scripting
SKILL.md

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

Related skills

azure-diagnosticsmicrosoft608KDebug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe triage. WHEN: debug production issues, troubleshoot app service, app service high CPU, app service deployment failure, troubleshoot container apps, troubleshoot functions, troubleshoot AKS, VM RDP, Linux SSH, VM black screen, can't connect to VM, reset VM password, NSG or firewall blocking, kubectl cannot connect, kube-system/CoreDNS failures, pod pending, crashloop, node not ready, upgrade failures, aazure-preparemicrosoft608KPrepare azd-based Azure projects for deployment: generates azure.yaml, infrastructure (Bicep/Terraform), and Dockerfiles for the Azure Developer CLI (azd) workflow. USE ONLY when the user explicitly wants to use azd as the deployment tool, or the project already has an azure.yaml file. DO NOT USE FOR: non-azd deployments, Python App Service code-only deploys (use python-appservice-deploy), or cross-cloud migration (use azure-cloud-migrate). WHEN: prepare app for azd, create azure.yaml, set up azazure-aimicrosoft608KUse for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector/hybrid search, speech-to-text, text-to-speech, transcription, OCR. WHEN: AI Search, query search, vector search, hybrid search, semantic search, speech-to-text, text-to-speech, transcribe, OCR, convert text to speech.azure-deploymicrosoft607KExecute Azure deployments for ALREADY-PREPARED applications that have existing .azure/deployment-plan.md and infrastructure files. DO NOT use this skill when the user asks to CREATE a new application — use azure-prepare instead. This skill runs azd up, azd deploy, terraform apply, and az deployment commands with built-in error recovery. Requires .azure/deployment-plan.md from azure-prepare and validated status from azure-validate. WHEN: \"run azd up\", \"run azd deploy\", \"execute deployment\",

Search skills and MCP servers

Fuzzy search across 23,137 skills and servers