命令组合基础

组合 Claude Code 命令与标志的常见模式

概述

在前面的章节中已经掌握了单独的 CLI 命令、标志与斜杠命令。本节聚焦如何将这些能力组合成更高效的自动化流程。

命令组合的概念

命令组合是将多个命令、标志与参数按逻辑串联,以完成复杂任务。常见收益包括:

  • 串联多个操作
  • 通过管道传递数据
  • 根据结果进行条件执行
  • 并行处理提升效率

基本组合模式

1. 标志组合

# 使用多个标志配置会话
claude --model sonnet --verbose --add-dir ./src --add-dir ./tests

标志组合要点:

  • 顺序无关:多数标志不依赖顺序
  • 优先级:后面的标志可能覆盖前面的设置
  • 兼容性:部分标志存在互斥关系

2. 管道组合

# 读取文件并通过管道传递给 Claude Code
cat main.py | claude -p "优化这段代码的性能"
# 多个命令的链式处理
cat code.py | claude -p "提取函数定义" | grep "def " | sort

注意事项:

  • 确保管道数据格式正确
  • 链路中任一命令失败会影响整体结果
  • 过长管道可能影响性能

3. 命令替换

# 将命令输出作为参数
claude -p "审查 $(git diff --name-only) 中的文件"
# 根据当前分支动态生成参数
claude -p "为 $(git branch --show-current) 分支生成提交信息"

4. 条件执行

# 前一个命令成功后才执行后一个命令
claude -p "生成测试代码" && claude -p "运行测试"
# 前一个命令失败时才执行后一个命令
claude -p "尝试快速修复" || claude -p "使用备用方案"
# 无论前一个命令是否成功都执行后一个命令
claude -p "生成代码" ; claude -p "生成文档"

5. 后台执行

# 在后台执行长时间运行的任务
claude -p "分析大型项目" &
# 并行执行多个独立的任务
claude -p "分析前端代码" &
claude -p "分析后端代码" &
claude -p "分析测试代码" &
wait

高级组合模式

1. 函数封装

# 定义一个代码审查函数
code_review() {
  local file=$1
  claude -p "审查 $file 的代码质量、安全性和性能" --output-format json
}

# 使用函数
code_review main.py
code_review utils.js
# 定义一个带多个参数的函数
analyze_project() {
  local project_dir=$1
  local model=$2
  local output_format=$3
  
  claude --model "$model" \
         --add-dir "$project_dir" \
         -p "分析项目结构和代码质量" \
         --output-format "$output_format"
}

# 使用函数
analyze_project ./myproject sonnet json

2. 循环处理

# 批量处理多个文件
for file in *.py; do
  claude -p "优化 $file 的性能" > "${file%.py}.optimized.py"
done
# 持续监控文件变化
while inotifywait -e modify *.py; do
  claude -p "检测到文件变化,重新分析代码"
done

3. 数组处理

# 定义项目数组
projects=("frontend" "backend" "api" "tests")

# 遍历数组并处理每个项目
for project in "${projects[@]}"; do
  claude --add-dir "./$project" -p "分析 $project 项目"
done
# 动态生成数组
files=($(git diff --name-only))

# 处理数组中的每个文件
for file in "${files[@]}"; do
  claude -p "审查 $file 的变更"
done

最佳实践

1. 可读性

# 定义变量
PROJECT_DIR="./myproject"
MODEL="sonnet"
OUTPUT_FORMAT="json"

# 使用变量和注释
claude \
  --model "$MODEL" \
  --add-dir "$PROJECT_DIR" \
  --add-dir "$PROJECT_DIR/tests" \
  --add-dir "$PROJECT_DIR/docs" \
  -p "分析项目结构和代码质量" \
  --output-format "$OUTPUT_FORMAT"

2. 错误处理

# 检查命令是否成功
if claude -p "生成代码"; then
  echo "代码生成成功"
else
  echo "代码生成失败"
  exit 1
fi

# 使用 trap 捕获错误
trap 'echo "发生错误,退出码: $?"' ERR

claude -p "执行任务1"
claude -p "执行任务2"
claude -p "执行任务3"

3. 性能优化

# 并行处理多个文件
for file in *.py; do
  claude -p "分析 $file" > "${file%.py}.analysis.json" &
done
wait

# 使用缓存
CACHE_FILE="analysis.cache"
if [ -f "$CACHE_FILE" ]; then
  echo "使用缓存结果"
  cat "$CACHE_FILE"
else
  claude -p "分析项目" > "$CACHE_FILE"
fi

4. 可维护性

# 定义模块化函数
setup_environment() {
  claude --add-dir ./src --add-dir ./tests --add-dir ./config
}

generate_code() {
  claude -p "生成代码"
}

run_tests() {
  claude -p "运行测试"
}

# 组合函数
main() {
  setup_environment
  generate_code
  run_tests
}

# 执行主函数
main

常见组合场景

1. 代码审查工作流

# 完整的代码审查工作流
claude -p "审查最近的代码变更" \
  --output-format json \
  > review.json && \
  claude -p "根据审查结果生成修复建议" \
  --input-format json \
  < review.json

2. 文档生成工作流

# 自动生成文档
claude -p "提取所有函数和类的文档注释" \
  --output-format json \
  > docs.json && \
  claude -p "根据提取的信息生成 Markdown 文档" \
  --input-format json \
  < docs.json > README.md

3. 测试工作流

# 自动化测试工作流
claude -p "生成测试用例" > test_cases.txt && \
claude -p "运行测试用例" && \
claude -p "分析测试结果" --output-format json > test_results.json

4. 部署工作流

# 自动化部署工作流
claude -p "检查代码质量" && \
claude -p "生成部署清单" && \
claude -p "执行部署脚本" && \
claude -p "验证部署结果"

总结

命令组合是释放 Claude Code 能力的关键。掌握标志组合、管道、命令替换与条件执行等模式,可以显著提升自动化效率与可维护性。

On this page