Skip to content

5.3 claude -p "query" - 透過 SDK 查詢,然後退出

claude -p "query" 命令允許您透過 SDK 執行查詢,然後立即退出。這是非互動模式,適合指令碼和自動化場景。

命令语法

bash


claude -p "query" [选项]

功能描述

使用 -p--print)標誌,Claude Code 會:

  1. 處理您提供的查詢
  2. 透過 SDK 執行查詢
  3. 列印響應結果
  4. 立即退出,不進入互動模式

這是程式化使用 Claude Code 的主要方式,特別適合:

  • 指令碼和自動化
  • CI/CD 流程
  • 批處理任務
  • 整合到其他工具

使用示例

基本用法

bash


claude -p "解释这个函数"

執行查詢,列印結果,然後退出。

代码生成

bash


claude -p "创建一个快速排序算法的 Python 实现"

生成快速排序演算法程式碼,列印結果,然後退出。

代码分析

bash


claude -p "分析这段代码的时间复杂度"

分析程式碼的時間複雜度,列印結果,然後退出。

处理管道内容

bash


cat logs.txt | claude -p "解释这些日志"

將日誌檔案內容透過管道傳遞給 Claude Code,請求解釋,然後退出。

结合输出格式

bash


claude -p "分析这个项目" --output-format json

以 JSON 格式輸出分析結果,便於指令碼解析。

輸出格式

-p 標誌支援多種輸出格式,可以透過 --output-format 標誌指定:

text 格式(默认)

bash


claude -p "查询内容"

輸出純文字格式的響應。

json 格式

bash


claude -p "查询内容" --output-format json

輸出 JSON 格式的響應,便於程式解析。

stream-json 格式

bash


claude -p "查询内容" --output-format stream-json

輸出流式 JSON,可以實時處理響應。

bash
## 使用场景

### 1\. 脚本自动化

    bash


    #!/bin/bash

    # 获取代码审查结果
    result=$(claude -p "审查 src/main.js" --output-format json)
    # 处理结果
    echo "$result" | jq '.suggestions'

在指令碼中使用 Claude Code 進行程式碼審查。

bash
### 2\. CI/CD 集成

    yaml


    # GitHub Actions 示例
    - name: Code Review
      run: |
        review=$(claude -p "审查最近的代码变更" --output-format json)
        echo "$review" > review.json

在 CI/CD 流程中自動進行程式碼審查。

3. 批处理

sh


for file in *.js; do
  claude -p "优化 $file" > "${file%.js}.optimized.js"
done

批次處理多個檔案。

高级用法

跳过权限提示

bash


claude -p --dangerously-skip-permissions "任务"

跳過許可權提示(謹慎使用),完全自動化執行。

注意事項

  1. 非互動模式-p 標誌不會進入互動模式,執行完查詢後立即退出
  2. 輸出格式 :建議使用 --output-format json 便於指令碼解析
  3. 錯誤處理 :指令碼中應該處理可能的錯誤和異常
  4. API 限制 :頻繁呼叫可能觸發 API 速率限制

與互動模式的對比

特性互動模式列印模式(-p)

會話保持| 是| 否 多輪對話| 是| 否 上下文保持| 是| 否 指令碼友好| 否| 是 自動化支援| 有限| 優秀 實時互動| 是| 否

最佳實踐

  1. 使用 JSON 輸出 :便於指令碼解析和處理
  2. 錯誤處理 :在指令碼中新增錯誤處理邏輯
  3. 結果驗證 :驗證返回的結果是否符合預期
  4. 日誌記錄 :記錄查詢和結果,便於除錯和審計

相關命令

  • claude:啟動互動式 REPL
  • claude "query":使用初始提示啟動 REPL
  • claude -c:繼續最近的對話
  • --output-format:指定輸出格式

SDK 文件

有關程式化使用 Claude Code 的更多詳情,請參閱官方 SDK 文件。

基于 MIT 许可发布 | 永久导航