AI 编程教程中文版
官方教程中文版集成与自动化

自动化脚本

Gemini CLI 自动化脚本:管道输入、批量生成文档、JSON 提取和 smart commit 这类 shell 封装。

📖 本篇术语速查表
英文 / 缩写中文一句话解释
自动化脚本automation用脚本批量调 Gemini CLI。
可重复repeatable脚本幂等、可复跑。
安全safety自动化守权限边界。

不想读完?把下面这段提示词丢给 AI 帮你跑完——帮你设计可靠的 Gemini CLI 自动化脚本(幂等、安全)。

你是 Gemini CLI 自动化脚本顾问。

【角色】
Gemini CLI 自动化脚本顾问,按最小够用、安全合规优先的原则给可落地方案,每条结论都落到能照做的步骤或示例,不停留在空泛建议。

【输入】
- 要自动化的流程:___
- 运行频率和触发:___
- 是否会改代码 / 数据:___
- 输出对接什么:___
- 经验水平:___

【工作流程】
1. 判断适不适合脚本自动化
2. 设计幂等可复跑的脚本
3. 按最小给权限
4. 设计输出和失败兜底
5. 给验证

【输出规范】
▌一、是否适合自动化
▌二、幂等脚本设计
▌三、权限最小化
▌四、兜底 + 验证

【硬约束】
- 脚本幂等、可复跑,不破坏现有
- 会改的限定范围 + 审查
- 凭据走环境变量,失败有兜底
- 不要替我臆测情况或编造不存在的配置,信息不全先问清
- 不确定的配置或接口一律以官方文档为准,禁止照搬过时写法

自动化脚本的核心是把 Gemini CLI 当成 Unix pipeline 里的一个处理器:从 stdin 读上下文,从 stdout 输出结果。

管道输入

常见写法是把日志、diff 或命令输出通过管道交给 Gemini CLI,例如 cat error.log | gemini -p "Explain why this failed",或 git diff | gemini -p "Write a concise commit message"

这种方式适合把已有命令输出交给模型解释、压缩、分类或改写。

不适合把未过滤的全量目录直接 pipe 给模型。批量脚本前要明确输入白名单,例如只处理 .log.md.ts,并排除 .env、构建产物和大文件。

输入列表应先打印出来。dry run 阶段先输出将处理的文件、预计输出路径和跳过原因,不要第一轮就调用模型。

批量生成文档

批量任务可以遍历文件,把每个文件用 @file 注入上下文,再把 Gemini CLI 输出重定向到对应 Markdown。生产脚本要额外处理空输出、失败退出码和配额重试。

落地时要加三件事:

  • 对输入文件做过滤,避免误读大文件或敏感文件。
  • 对输出做格式检查,避免空文件或非预期文本。
  • 批量任务之间加间隔或重试,避免配额错误。
  • 写正式文件前先写临时文件,确认非空且格式正确后再替换。

结构化 JSON

需要结构化结果时,使用 --output-format json,再用 jq -r '.response' 提取模型最终回答。

让模型“返回 JSON”不等于结果一定可被解析。生产脚本要加 jq 校验和失败分支。

Smart commit

Smart commit 的思路是读取 git diff --staged,让 Gemini CLI 输出一条 Conventional Commit message,再交给人确认后提交。

更稳的版本应先人工确认 message,再提交。

自动化动作是否可自动写入控制方式
总结日志 / diff可以写报告校验非空和格式
生成 commit message不直接提交人工确认 message
批量生成文档可写临时文件校验后再替换
修改源码谨慎先计划、diff、测试
发布 / push不默认自动独立审批

生产脚本骨架

自动化脚本至少包含这些防线:

set -euo pipefail

out="$(mktemp)"
if gemini --output-format json -p "Summarize @README.md" > "$out"; then
  jq -e '.response | length > 0' "$out" >/dev/null
else
  echo "gemini failed" >&2
  exit 1
fi

这段不是完整业务脚本,但展示了生产思路:严格 shell、临时输出、退出码检查、JSON 校验。不要把 gemini ... > final.md 作为批量生成的唯一保护。

验收方式

自动化脚本要跑 dry run。检查输入文件列表、输出文件数量、空输出、失败日志、重试策略和是否读取了敏感路径。Smart commit 这类会执行 Git 动作的封装,必须保留人工确认,不要默认直接提交。

dry run 日志应能复现输入范围。 便于复核。

生产脚本还要能断点续跑。批量任务中途失败时,应该知道哪些文件已完成、哪些失败、哪些未开始,不能靠重新跑全量覆盖结果。

输出落地

批量写文件时,推荐输出到临时目录,全部校验通过后再移动到正式目录。校验至少包括非空、扩展名、frontmatter 或 JSON schema、重复文件名和敏感词扫描。自动化越长,越不能只看最后一条命令的 exit code。

失败要能重试,成功要可复核。

接下来去哪

官方来源

本页目录