Bash Scripting

by mindrally97184105b5daNo license269 starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 5 weeks ago

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

AI-generated overview

Guidelines for writing secure, portable, maintainable Bash scripts for automation and DevOps tasks.

What it does
Provides a set of Bash scripting guidelines covering naming and structure, input validation and security, code quality, error handling and cleanup, and automation practices. It includes recommended patterns such as strict error handling, traps for cleanup, and modular functions, plus a short example script skeleton. It produces guidance rather than executable scripts.
When to use it
Use when writing, reviewing, or standardizing Bash scripts for automation, provisioning, backups, or deployment. It is suited to situations where portability, input validation, and reliable error handling matter.
Requirements
No scripts or assets ship with the skill; it is instructions only. Applying its recommendations may involve tools such as shellcheck, but nothing beyond the agent is required to read the guidance.

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

bash
#!/usr/bin/env bashset -euo pipefail
# Trap for cleanuptrap cleanup EXIT
cleanup() {    # Clean up temporary files    rm -f "${TEMP_FILE:-}"}
# Use functions for modularitymain() {    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 and attribution

Source:mindrally/skillsinbash-scriptingat commit9718410

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal