claude -p 命令

通过 SDK 执行查询并立即退出,适合脚本和自动化

概述

claude -p "query" 命令允许您通过 SDK 执行查询,然后立即退出。这是非交互模式,适合脚本和自动化场景。

命令语法

claude -p "query" [选项]

功能描述

使用 -p--print)标志,Claude Code 会:

  1. 处理您提供的查询
  2. 通过 SDK 执行查询
  3. 打印响应结果
  4. 立即退出,不进入交互模式

使用示例

基本用法

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 json

stream-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 速率限制

最佳实践

  1. 使用 JSON 输出:便于脚本解析和处理
  2. 错误处理:在脚本中添加错误处理逻辑
  3. 结果验证:验证返回的结果是否符合预期
  4. 日志记录:记录查询和结果,便于调试和审计

On this page