Bash Scripting

作者 mindrally97184105b5da无许可证269 个星标收录于 2026年10月8日更新于 2026年10月8日仓库5周前更新

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

AI 生成的概览

提供编写安全、可移植、易维护的 Bash 脚本的指南,面向自动化与 DevOps 任务。

功能
提供一套 Bash 脚本编写指南,涵盖命名与结构、输入验证与安全、代码质量、错误处理与清理以及自动化实践。其中包含推荐模式,例如严格错误处理、用于清理的 trap 和模块化函数,并附有一个简短的示例脚本骨架。它产出的是指导内容,而不是可执行脚本。
适用场景
适用于编写、审查或统一用于自动化、配置、备份或部署的 Bash 脚本。适合重视可移植性、输入验证和可靠错误处理的场景。
运行要求
该技能不附带脚本或资源,仅为说明性指导。应用其建议时可能涉及 shellcheck 等工具,但阅读这些指导除智能体本身外无需其他条件。

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

来源与署名

来源:mindrally/skills位于bash-scripting提交9718410

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架