Use when adding new error messages to React, or seeing "unknown error code" warnings.
npx skills add Mindrally/skills --skill "bash-scripting"
Install specific skill from multi-skill repository
# Description
Bash scripting guidelines covering security, portability, error handling, and automation best practices for DevOps.
# SKILL.md
name: bash-scripting
description: Bash scripting guidelines covering security, portability, error handling, and automation best practices for DevOps.
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
getoptsor 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
shellcheckto lint scripts and improve quality - Redirect output to log files where appropriate, separating stdout and stderr
- Use meaningful exit codes
Error Handling & Cleanup
- Use
trapfor error handling and cleaning up temporary files - Implement
set -euo pipefailfor 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
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.