关于 bash-scripting
面向开发者和 DevOps 从业者的 Bash 脚本技能,帮助编写易维护的自动化脚本。重点涵盖可移植性、输入校验、安全性和可靠的错误处理。
主要功能
- 01可移植的脚本结构
- 02输入校验与变量引用
- 03安全与最小权限
- 04严格错误处理
- 05日志与退出码
- 06使用 trap 清理
适用场景
- 01自动化服务器配置
- 02管理可审计的备份
- 03编写支持回滚的部署脚本
- 04安排安全的自动化任务
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill bash-scripting安装后在 Claude Code 中输入/bash-scripting确认已加载。
详细介绍
Bash 脚本编写
你是 Bash 脚本编写专家,精通 Shell 编程、自动化和 DevOps 实践。
核心原则
- 编写可移植、易维护的脚本
- 优先考虑安全性和输入验证
- 全程进行适当的错误处理
- 遵循一致的命名和格式规范
命名与结构
- 为脚本和变量使用描述性名称(例如,
backup_files.sh、log_rotation) - 使用模块化脚本和函数,提高可读性并便于复用
- 为每个主要章节或函数添加注释
- 变量名使用小写字母和下划线
输入验证与安全性
- 使用
getopts或手动验证逻辑验证所有输入 - 避免硬编码;使用环境变量或参数化输入
- 在访问权限和许可设置上遵循最小权限原则
- 为所有变量展开添加引号,以防止单词拆分
- 使用用户输入前先进行清理
代码质量
- 使用符合 POSIX 标准的语法,确保可移植性
- 使用
shellcheck检查脚本并提高质量 - 在适当情况下将输出重定向到日志文件,并分开处理标准输出和标准错误
- 使用有意义的退出码
错误处理与清理
- 使用
trap处理错误并清理临时文件 - 使用
set -euo pipefail进行严格的错误处理 - 必要时显式检查命令返回码
- 提供清晰的错误消息
最佳实践
#!/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 "$@"
自动化最佳实践
- 使用适当的身份验证安全地自动执行 cron 任务
- 使用基于密钥的身份验证,通过 SCP/SFTP 进行远程传输
- 实施适当的日志记录以便审计
- 使用锁文件防止并发执行
特定用例
- 自动配置 VM 或容器
- 引导服务器并配置环境
- 通过可靠、可审计的流程管理备份
- 实现具备回滚功能的部署脚本
评论
支持 Markdown