5.3 claude -p "query" - 透過 SDK 查詢,然後退出
claude -p "query" 命令允許您透過 SDK 執行查詢,然後立即退出。這是非互動模式,適合指令碼和自動化場景。
命令语法
bash
claude -p "query" [选项]
功能描述
使用 -p(--print)標誌,Claude Code 會:
- 處理您提供的查詢
- 透過 SDK 執行查詢
- 列印響應結果
- 立即退出,不進入互動模式
這是程式化使用 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 "任务"
跳過許可權提示(謹慎使用),完全自動化執行。
注意事項
- 非互動模式 :
-p標誌不會進入互動模式,執行完查詢後立即退出 - 輸出格式 :建議使用
--output-format json便於指令碼解析 - 錯誤處理 :指令碼中應該處理可能的錯誤和異常
- API 限制 :頻繁呼叫可能觸發 API 速率限制
與互動模式的對比
| 特性 | 互動模式 | 列印模式(-p) |
|---|
會話保持| 是| 否 多輪對話| 是| 否 上下文保持| 是| 否 指令碼友好| 否| 是 自動化支援| 有限| 優秀 實時互動| 是| 否
最佳實踐
- 使用 JSON 輸出 :便於指令碼解析和處理
- 錯誤處理 :在指令碼中新增錯誤處理邏輯
- 結果驗證 :驗證返回的結果是否符合預期
- 日誌記錄 :記錄查詢和結果,便於除錯和審計
相關命令
claude:啟動互動式 REPLclaude "query":使用初始提示啟動 REPLclaude -c:繼續最近的對話--output-format:指定輸出格式
SDK 文件
有關程式化使用 Claude Code 的更多詳情,請參閱官方 SDK 文件。