非交互执行


非交互模式用于将 Claude Code 纳入脚本或批处理流程。任务通过命令一次性提交,结果写入终端或文件,适合整理构建日志、生成变更摘要和开展范围明确的检查。使用前,应先在交互会话中验证任务说明、输入文件及所需权限,确认流程能够正常完成。

提交单次任务

在项目目录中执行以下命令,即可读取项目说明并生成摘要。示例中的 README.md 应替换为实际存在的文件。

claude -p "请阅读 README.md,概括项目用途、启动方法和测试方法;文件未说明的内容标注为未说明。"

image-20261026182328854

-p 是 --print 的简写。普通非交互调用仍可能加载当前项目及用户配置中的指令、技能、插件和 Hooks。用于无人值守脚本时,宜先检查这些配置。官方还提供 --bare 模式减少自动加载;采用该模式时,需要另行提供必要上下文,并配置 API 或受支持服务提供方的认证,不能直接沿用 Claude 订阅登录。

设置结果格式

后续程序需要读取结果时,可指定 JSON 输出:

claude -p "请概括 README.md 中的安装要求。" --output-format json

这里的 JSON 包含结果文本、会话信息及相关元数据,并不意味着正文自动成为用户指定字段的业务数据。需要固定字段时,还应使用 --json-schema 定义结构,并在后续程序中验证返回结果。接入正式流程前,应同时检查命令退出状态、错误信息和必要字段,不能仅以生成了文件判断任务成功。

控制执行范围

--allowedTools 用于预先允许指定工具或匹配的操作。它不是“只有列出的工具才能使用”的完整白名单:原本不需要批准的其他操作仍可能执行,最终行为还受权限模式及已加载配置影响。需要限制内置工具集合时,可进一步配置 --tools;该参数不限制 工具,后者还需单独检查。

非交互执行同样消耗相应账号的用量或 API 费用。可按任务设置 --max-turns ,按适用计费方式设置 --max-budget-usd;前者限制执行轮次,后者根据客户端费用估算停止运行,实际支出可能越过设定值,不等同于账户月度账单上限。批量处理前,宜先选取少量具有代表性的文件测试,再逐步扩大范围,并保留每次运行的输入、结果和失败原因。

评论

登录后查看