Skip to content

6.5 --print, -p - 列印響應而不進入互動模式

--print-p 標誌允許 Claude Code 列印響應而不進入互動模式。這是程式化使用 Claude Code 的主要方式。

标志语法

bash


claude -p "query" [其他选项]

    bash


    claude --print "query" [其他选项]

## 功能描述

-p--print)標誌會:

使用示例

基本用法

bash


claude -p "解释这个函数"

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

代码生成

bash


claude -p "创建一个快速排序算法"

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

结合输出格式

bash


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

以 JSON 格式輸出分析結果。

处理管道内容

bash


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

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

輸出格式

-p 標誌支援多種輸出格式:

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")
    echo "$result"

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

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

    yaml


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

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

3. 批处理

bash


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

批次處理多個檔案。

4. 数据处理

bash


cat data.json | claude -p "提取关键信息" --output-format json

處理 JSON 資料並提取關鍵資訊。

高级用法

包含部分流事件

bash


claude -p "复杂任务" --output-format stream-json --include-partial-messages

在輸出中包含部分流事件,用於除錯和實時處理。

限制代理轮数

bash


claude -p --max-turns 3 "执行任务"

限制非互動模式中的代理輪數,控制執行時間。

指定权限提示工具

bash


claude -p --permission-prompt-tool mcp_auth_tool "需要权限的任务"

指定 MCP 工具以在非互動模式中處理許可權提示。

注意事項

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

與互動模式的對比

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

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

最佳實踐

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

相關命令

  • claude:啟動互動式 REPL
  • claude "query":使用初始提示啟動 REPL
  • --output-format:指定輸出格式
  • --input-format:指定輸入格式

SDK 文件

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

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