Agent Skills
返回列表
💻

Shell脚本进阶

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/bash-shell-scripting 到你的 AI 助手。

技能介绍

你的 Shell 脚本还在"跑一跑就挂"吗?

写了个 build.sh,CI 里跑到第 47 步突然挂了,前面 46 步的临时文件没人清理;半夜收到告警,发现是脚本里某个命令返回了非 0,但没人检查,脏数据已经写进数据库。这类"一次性脚本"的问题不在于写得快,而在于没有错误处理、没有信号捕获、没有参数验证——它们只在你的机器上、你的运气下能跑起来。

这个技能如何工作

@kunlungrowth/bash-shell-scripting 把脚本当作工程产物来对待,核心能力包括:

安全基础设置。 每个脚本头部强制 set -euo pipefail:任何命令失败立即退出,未定义变量直接报错,管道中任一环节失败都会触发错误,而不是只检查最后一条命令。

错误处理与 trap。 用 trap 捕获 EXIT、INT、TERM 等信号,保证临时文件、子进程被正确清理,同时保留原始退出码,让调用方知道真正的失败原因。

参数解析。 用 getopt 处理长短选项,比手动 while case 循环更健壮,避免边界情况出错。

并行执行。 通过 job control 和并发上限控制(如 MAX_JOBS),实现批量任务的受控并发,而不是无脑 &。

输出不仅包含完整脚本,还会附带安全说明(为什么加这些选项、trap 清理了什么)和使用示例。

什么时候不该用它

不是所有任务都该用 Shell。以下场景请改用其他语言:

  • 复杂业务逻辑:状态机、复杂数据变换、业务规则——请用 Python 或 Go。
  • 跨平台要求极高:如果你的脚本要在 Windows、macOS、Linux 上行为一致,Python 是更务实的选择。

Shell 脚本的强项在于系统胶水层、CI/CD 流水线、批处理管道和开发效率工具——把它用在该用的地方,它才能发挥价值。

使用场景

  • CI 流水线需要一个构建脚本,要在任意步骤失败时立即退出,不能留下半成品
  • 批量下载几十个文件,要求最多 3 个并发、失败自动重试 2 次,Ctrl+C 时清理残片
  • 运维脚本需要解析 -v、-o 等长短选项,并捕获 INT 信号优雅关闭子进程
  • 数据处理管道需要把多个命令串联成管道,任一环节失败都要感知并退出

适合人员

  • 后端工程师,需要编写部署脚本并确保失败时不产生脏数据
  • DevOps 工程师,负责 CI/CD 流水线,需要脚本有完善的错误处理和日志
  • SRE 工程师,维护批处理任务,需要并发控制和信号捕获能力
  • 工具开发者,写内部效率脚本,希望达到生产级健壮性而非一次性脚本