claude -p 命令
通过 SDK 执行查询并立即退出,适合脚本和自动化
概述
claude -p "query" 命令允许您通过 SDK 执行查询,然后立即退出。这是非交互模式,适合脚本和自动化场景。
命令语法
claude -p "query" [选项]功能描述
使用 -p(--print)标志,Claude Code 会:
- 处理您提供的查询
- 通过 SDK 执行查询
- 打印响应结果
- 立即退出,不进入交互模式
使用示例
基本用法
claude -p "解释这个函数"代码生成
claude -p "创建一个快速排序算法的 Python 实现"代码分析
claude -p "分析这段代码的时间复杂度"处理管道内容
cat logs.txt | claude -p "解释这些日志"结合输出格式
claude -p "分析这个项目" --output-format json输出格式
通过 --output-format 标志指定输出格式:
text 格式(默认)
claude -p "查询内容"json 格式
claude -p "查询内容" --output-format jsonstream-json 格式
claude -p "查询内容" --output-format stream-json使用场景
脚本自动化
#!/bin/bash
# 获取代码审查结果
result=$(claude -p "审查 src/main.js" --output-format json)
# 处理结果
echo "$result" | jq '.suggestions'CI/CD 集成
# GitHub Actions 示例
- name: Code Review
run: |
review=$(claude -p "审查最近的代码变更" --output-format json)
echo "$review" > review.json批处理
for file in *.js; do
claude -p "优化 $file" > "${file%.js}.optimized.js"
done跳过权限提示
claude -p --dangerously-skip-permissions "任务"谨慎使用,仅推荐在没有互联网访问的沙箱中使用。
与交互模式的对比
| 特性 | 交互模式 | 打印模式(-p) |
|---|---|---|
| 会话保持 | 是 | 否 |
| 多轮对话 | 是 | 否 |
| 上下文保持 | 是 | 否 |
| 脚本友好 | 否 | 是 |
| 自动化支持 | 有限 | 优秀 |
| 实时交互 | 是 | 否 |
注意事项
- 非交互模式:执行完查询后立即退出
- 输出格式:建议使用
--output-format json便于脚本解析 - 错误处理:脚本中应该处理可能的错误和异常
- API 限制:频繁调用可能触发 API 速率限制
最佳实践
- 使用 JSON 输出:便于脚本解析和处理
- 错误处理:在脚本中添加错误处理逻辑
- 结果验证:验证返回的结果是否符合预期
- 日志记录:记录查询和结果,便于调试和审计