写 Bash 脚本总踩坑?这个 Skill 让你从”会写”变”写对”
你的 Bash 脚本在测试环境跑得好好的,一上生产就各种诡异报错?变量空格截断、循环里子 shell 坑、文件有空格就崩……这些坑我踩过,现在有解了。
给大家挖到一个专门治 Bash 脚本各种疑难杂症的 Skill——bash-pro。它是「防御性 Bash 编程」的完整方法论,专注让脚本从「能跑」变「写对」。
核心能力:让脚本在生产环境不翻车
Strict Mode 强制执行:每次写脚本自动开 set -Eeuo pipefail,变量未定义就报错,而不是悄悄变成空值继续跑。for f in $(ls) 这种经典坑?自动替换成 find -print0 | while IFS= read -r -d '' f,文件名带空格、带特殊字符统统不崩。
防御性编程模式:输入全部当未信任处理,eval 和不安全 globbing 一律规避。getopts 规范参数解析,缺失必填参数立即报错退出。临时文件用 mktemp 创建 + trap 清理,脚本中途 Ctrl+C 也不会留下垃圾文件。
跨平台兼容性:Linux、macOS、BSD 全覆盖,GNU vs BSD 工具差异(如 sed -i 的不同语法)自动处理。#!/usr/bin/env bash shebang 保证在不同系统上都能找到解释器。
自动化场景:CI/CD 和系统工具开发
这个 Skill 特别适合做这几件事:
- 写 GitHub Actions 里的 shell 脚本(支持
shellcheck-problem-matchers报错直接内联到 Actions UI) - 搭 CI/CD pipeline,用 Bats 框架写测试用例覆盖各种异常路径
- 开发 Homebrew formulas、deb/rpm 包分发脚本
- 写系统工具和运维脚本,要处理信号(
SIGHUP/SIGINT/SIGTERM)优雅退出
现代 Bash 5.x 加持
如果你的服务器跑的是 Bash 5.x,还能用上:关联数组(declare -A)做配置管理、参数展开(${var@U} 大写转换)、wait -n 等待任意后台任务完成、mapfile -d delim 自定义分隔符读取等现代特性。
加上 ShellCheck + shfmt 自动检查代码质量,Bash 3 到 5 多版本矩阵测试,真正让脚本「写一次,跑到处」。
用起来超简单
在 Smithery.ai 搜索「bash-pro」,支持 OpenClaw、Claude Code、Cursor 等主流 AI 编程工具。安装后只要描述你的脚本需求(自动化任务、CI/CD、工具脚本),它就会按照防御性编程规范生成完整的、可直接上生产的 Bash 脚本。
不管你是运维工程师还是后端开发者,手头总有几个离不开的 shell 脚本。这个 Skill 相当于给每个脚本上了「安全锁」,至少不会在凌晨三点被服务器报警叫醒修 bug 了。
GitHub:https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/bash-pro
GitHub: https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/bash-pro
评论区
登录后可评论。