命令组合基础
组合 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 json2. 循环处理
# 批量处理多个文件
for file in *.py; do
claude -p "优化 $file 的性能" > "${file%.py}.optimized.py"
done# 持续监控文件变化
while inotifywait -e modify *.py; do
claude -p "检测到文件变化,重新分析代码"
done3. 数组处理
# 定义项目数组
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"
fi4. 可维护性
# 定义模块化函数
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.json2. 文档生成工作流
# 自动生成文档
claude -p "提取所有函数和类的文档注释" \
--output-format json \
> docs.json && \
claude -p "根据提取的信息生成 Markdown 文档" \
--input-format json \
< docs.json > README.md3. 测试工作流
# 自动化测试工作流
claude -p "生成测试用例" > test_cases.txt && \
claude -p "运行测试用例" && \
claude -p "分析测试结果" --output-format json > test_results.json4. 部署工作流
# 自动化部署工作流
claude -p "检查代码质量" && \
claude -p "生成部署清单" && \
claude -p "执行部署脚本" && \
claude -p "验证部署结果"总结
命令组合是释放 Claude Code 能力的关键。掌握标志组合、管道、命令替换与条件执行等模式,可以显著提升自动化效率与可维护性。