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 工具以在非互動模式中處理許可權提示。
注意事項
- 非互動模式 :
-p標誌不會進入互動模式,執行完查詢後立即退出 - 輸出格式 :建議使用
--output-format json便於指令碼解析 - 錯誤處理 :指令碼中應該處理可能的錯誤和異常
- 資源限制 :長時間執行的任務可能需要調整超時設定
- API 限制 :頻繁呼叫可能觸發 API 速率限制
與互動模式的對比
| 特性 | 互動模式 | 列印模式(-p) |
|---|
會話保持| 是| 否 多輪對話| 是| 否 上下文保持| 是| 否 指令碼友好| 否| 是 自動化支援| 有限| 優秀 實時互動| 是| 否
最佳實踐
- 使用 JSON 輸出 :便於指令碼解析和處理
- 錯誤處理 :在指令碼中新增錯誤處理邏輯
- 超時設定 :為長時間執行的任務設定合理的超時
- 結果驗證 :驗證返回的結果是否符合預期
- 日誌記錄 :記錄查詢和結果,便於除錯和審計
相關命令
claude:啟動互動式 REPLclaude "query":使用初始提示啟動 REPL--output-format:指定輸出格式--input-format:指定輸入格式
SDK 文件
有關程式化使用 Claude Code 的更多詳情,請參閱 SDK 文件。