Skip to content
FunCoding

Search

Search docs, Skills and MCP

管道、批处理与脚本集成

将日志和 diff 传入无头模式,保存结果并分别检查进程与产物。

This page has not been translated into English yet. The original Chinese version is shown below.

无头模式一次运行后退出,适合 CI 分析、日志摘要和脚本包装。脚本既要处理模型结果,也要处理输入、认证和退出状态。

标准输入

cat error.log | gemini -p "Explain why this failed"
git diff | gemini -p "Write a commit message for these changes"

PowerShell 使用:

Get-Content error.log | gemini -p "Explain why this failed"

日志与 diff 通过 stdin 提供上下文;请求提交消息只产生文本,不代表已经提交。实际写仓库的操作应由调用脚本的显式步骤决定。

保存与解析结果

文字 stdout 可以重定向为文件,也可请求 json 包装后提取 response。官方示例使用 jq -r '.response' 或 PowerShell 的 ConvertFrom-Json,再将 response 写入文件。

注意两个验证层:先确认 CLI 退出成功、没有错误对象,再验证回答内容是否符合业务结构。模型输出的 Markdown 代码围栏、缺少字段或无效 JSON 不能因为外层包装成功就直接送给下一系统。

批量任务

官方教程用循环为每个 Python 文件产生 Markdown 摘要。采用这类模式前确认输入文件集合、输出命名和覆盖范围;命令中的文件路径需正确引用,不能把不受信任文件名当作 Shell 代码。

按文件保存失败状态,区分没有读取到输入、模型调用失败和产物校验失败。每个任务仍使用已配置的权限与工具,批量执行不使错误结果自动变可信。

在流水线使用

提前配置认证,选择 text/json/stream-json 接口,并保留必要的错误信息。重定向或管道会影响 TTY 判断,使用 -p 明确意图。涉及计划到实施的流程还需注意无头 Plan Mode 会自动转换为 YOLO。