Skip to content

5.6 claude -c -p "query" - 透過 SDK 繼續

claude -c -p "query" 命令結合了會話恢復和列印模式,允許您在繼續最近對話的同時執行一次性查詢。

命令语法

bash


claude -c -p "query" [选项]

功能描述

這個命令結合了兩個功能:

  1. -c--continue):載入最近的對話會話
  2. -p--print):透過 SDK 執行查詢,然後退出 這允許您:
  • 在之前對話的上下文中執行查詢
  • 獲取查詢結果而不進入互動模式
  • 適合指令碼和自動化場景
  • 保持對話的連續性

使用示例

基本用法

bash


claude -c -p "检查类型错误"

載入最近的對話,執行型別檢查查詢,列印結果,然後退出。

代码审查

bash


claude -c -p "审查最近的代码变更"

在之前對話的上下文中審查最近的程式碼變更。

测试结果分析

bash


claude -c -p "分析测试失败的原因"

在之前對話的上下文中分析測試失敗的原因。

结合输出格式

bash


claude -c -p "总结当前进度" --output-format json

以 JSON 格式輸出進度總結,便於指令碼解析。

指定模型

bash


claude -c -p "优化性能" --model claude-4-opus

使用指定的模型在之前對話的上下文中最佳化效能。

使用场景

1. CI/CD 集成

bash


# 在 CI/CD 流程中继续之前的对话
claude -c -p "运行测试并分析结果" --output-format json

在 CI/CD 中繼續之前的對話,執行測試並分析結果。

2. 定期检查

bash


# 定期检查项目状态
claude -c -p "检查代码质量" --output-format json

在之前對話的上下文中定期檢查程式碼質量。

3. 自动化报告

bash


# 生成进度报告
claude -c -p "生成进度报告" --output-format json > report.json

在之前對話的上下文中生成進度報告。

4. 批量任务

bash


# 执行多个相关任务
claude -c -p "任务1" --output-format json > result1.json
claude -c -p "任务2" --output-format json > result2.json
claude -c -p "任务3" --output-format json > result3.json

在相同的對話上下文中執行多個相關任務。

上下文保持

对话历史

-c 標誌會載入完整的對話歷史,包括:

  • 之前的查詢和響應
  • 程式碼生成和修改
  • 檔案訪問記錄
  • 工具呼叫歷史

上下文影響

查詢會在之前對話的上下文中執行,這意味著:

  • Claude 會記住之前的討論
  • 可以引用之前生成的程式碼
  • 可以繼續之前的話題
  • 保持一致的風格和偏好

上下文限制

需要注意上下文的限制:

  • 上下文長度 :對話歷史有長度限制,過長的歷史可能被截斷
  • 上下文相關性 :如果查詢與之前對話不相關,上下文可能沒有幫助
  • 上下文更新 :新的查詢會更新對話上下文

與其他命令的對比

命令載入會話進入 REPL輸出格式適用場景

claude -c| 是| 是| 互動式| 繼續互動式工作 claude -c -p| 是| 否| 可指定| 指令碼和自動化 claude -p| 否| 否| 可指定| 獨立查詢 claude -r "id" -p| 指定會話| 否| 可指定| 精確控制會話

高级用法

结合多个选项

bash


claude -c -p "任务" --model opus --output-format json --verbose

使用多個選項精確控制執行。

bash
### 错误处理

    bash


    #!/bin/bash
    # 执行查询并处理错误
    result=$(claude -c -p "任务" --output-format json 2>&1)
    if [ $? -ne 0 ]; then
      echo "错误: $result"
      exit 1
    fi
    echo "$result" | jq '.result'

在指令碼中處理可能的錯誤。

超时控制

bash


# 设置超时
timeout 60 claude -c -p "长时间任务"

為長時間執行的任務設定超時。

注意事項

  1. 會話依賴 :需要當前目錄中有可用的會話
  2. 上下文相關 :查詢應該與之前對話相關,以充分利用上下文
  3. 輸出格式 :建議使用 --output-format json 便於指令碼解析
  4. 會話更新 :查詢會更新對話上下文,影響後續的 -c 呼叫
  5. 資源使用 :長時間執行的查詢可能佔用較多資源

最佳實踐

  1. 上下文相關 :確保查詢與之前對話相關,充分利用上下文
  2. 明確查詢 :查詢應該明確具體,避免模糊不清
  3. 輸出格式 :使用合適的輸出格式,便於後續處理
  4. 錯誤處理 :在指令碼中新增錯誤處理邏輯
  5. 會話管理 :定期清理不需要的會話,避免混淆
## 常见问题

### Q: 查询会修改会话吗?

A: 是的,查询会更新对话上下文,影响后续的 `-c` 调用。

### Q: 可以使用其他会话吗?

A: 不可以,`-c` 只会加载最近的会话。要使用其他会话,请使用 `-r` 命令。

### Q: 上下文会保留多久?

A: 上下文会保留在会话文件中,直到会话被删除或覆盖。

### Q: 查询失败会影响会话吗?

A: 查询失败不会修改会话,但会记录错误信息。

## 相关命令
  • claude -c:繼續最近的對話(進入 REPL)
  • claude -r "id" -p:按 ID 恢復會話並執行查詢
  • claude -p:執行獨立查詢
  • --output-format:指定輸出格式
bash
## 实际应用示例

### 自动化工作流

    bash


    #!/bin/bash
    # 每天自动检查项目状态
    echo "=== 每日检查 ==="

    # 检查代码质量
    claude -c -p "检查代码质量" --output-format json > quality.json

    # 检查测试状态
    claude -c -p "检查测试状态" --output-format json > tests.json

    # 生成报告
    claude -c -p "生成每日报告" --output-format json > report.json

    echo "检查完成"

### 持续集成

    yaml


    # GitHub Actions 示例
    name: Daily Check
    on:
      schedule:
      - cron: '0 9 * * *'
      jobs:
        check:
          runs-on: ubuntu-latest
      steps:
        - uses: actions/checkout@v2
        - name: Check Code Quality
          run: |
            result=$(claude -c -p "检查代码质量" --output-format json)
            echo "$result" | jq '.issues' > issues.json

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