Home
avatar

麒麟剑

Claude Code实战教程(10):命令行与自动化——将AI嵌入你的工作流

《从零开始的 Claude Code 实战系列教程》第 10 篇 · 公众号「麒麟剑的AI自动化Lab」连载

Automation and CI/CD pipeline ▲ 将 AI 能力嵌入自动化流水线,让开发流程更加智能高效


一、为什么需要 Claude Code CLI?

交互式会话虽然强大,但在以下场景中,非交互式的 CLI 模式更加高效:

  • CI/CD 流水线:自动化代码审查
  • 批量任务处理:一次性处理多个文件
  • 脚本集成:将 AI 能力嵌入现有工作流
  • 定时任务:定期分析代码质量

想象一下,每天早上自动运行一次代码质量分析,并生成报告发送到 Slack——这就是 CLI 模式的价值。


二、核心命令行参数

基本用法

# 非交互式运行
claude -p "修复这个 bug"

# 指定模型
claude -p "优化这段代码" --model claude-opus-5

# 输出 JSON 格式
claude -p "分析代码质量" --output-format json

# 使用 CLAUDE.md
claude -p "重构 auth 模块" --dangerously-skip-permissions

完整参数表

参数说明示例
-p, --print非交互式运行claude -p "任务描述"
--model指定模型--model claude-haiku-4.5
--output-format输出格式--output-format json
--dangerously-skip-permissions跳过权限确认--dangerously-skip-permissions
-c, --continue恢复上次会话claude -c
-r, --resume恢复指定会话claude -r <session-id>
--fork-session创建并行会话claude --fork-session
--config指定配置文件--config ./my-config.json

三、实战:创建自动化脚本

场景 1:批量代码审查

#!/bin/bash
# code-review.sh - 批量代码审查脚本

for dir in src/*/; do
  echo "=== Reviewing $dir ==="
  claude -p "审查 $dir 目录下的代码质量" --output-format json > review-${dir}.json
done

echo "代码审查完成"

场景 2:自动修复 lint 错误

#!/bin/bash
# auto-fix.sh - 自动修复 lint 错误

npx eslint src/ --fix || true

claude -p "运行 ESLint 检查并修复所有错误"

echo "修复完成"

场景 3:生成提交消息

#!/bin/bash
# commit-msg.sh - 自动生成提交消息

claude -p "根据当前 git diff 生成一个清晰的 commit message" \
  --output-format json > commit.json

MESSAGE=$(cat commit.json | jq -r '.message')
git commit -m "$MESSAGE"

四、CI/CD 集成

GitHub Actions 示例

name: AI Code Review
on: [pull_request]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Claude Code Review
        run: |
          claude -p "请审查当前 PR 的代码质量、安全性和潜在问题" \
            --output-format=json > review.json
      
      - name: Upload Review
        uses: actions/upload-artifact@v4
        with:
          name: code-review
          path: review.json

GitLab CI 示例

stages:
  - review

ai_review:
  stage: review
  script:
    - claude -p "审查当前 MR 变更" --output-format=json > review.json
  artifacts:
    paths:
      - review.json

Jenkins Pipeline 示例

pipeline {
    agent any
    stages {
        stage('AI Code Review') {
            steps {
                sh 'claude -p "审查代码变更" --output-format=json > review.json'
                archiveArtifacts artifacts: 'review.json'
            }
        }
    }
}

五、Shell 别名与自动补全

创建别名

# 添加到 ~/.zshrc 或 ~/.bashrc
alias cc='claude'
alias ccr='claude -p "代码审查"'
alias ccg='claude -p "生成提交消息"'
alias ccd='claude --doctor'

启用自动补全

# bash
compdef _claude claude

# zsh
autoload -Uz compinit && compinit
_clader_complete() {
  local -a commands
  commands=(
    'help:显示帮助信息'
    'review:代码审查'
    'debug:调试'
  )
  _describe 'command' commands
}
compdef _clader_complete claude

六、进度与日志

实时进度

claude -p "重构整个项目" --progress

输出示例:

[1/10] 分析项目结构...
[2/10] 识别需要重构的模块...
[3/10] 开始重构 auth 模块...
...

日志记录

claude -p "任务描述" --log-dir ./logs

日志文件会保存在 ./logs 目录下,便于后续审计。


七、错误处理与重试

自动重试

# 失败后自动重试 3 次
for i in {1..3}; do
  claude -p "任务描述" && break
  echo "第 $i 次尝试失败,正在重试..."
  sleep 5
done

超时控制

# 设置 30 秒超时
timeout 30 claude -p "任务描述"

八、实战:构建完整的自动化工作流

场景:每日代码质量报告

#!/bin/bash
# daily-report.sh - 每日代码质量报告

DATE=$(date +%Y-%m-%d)
REPORT_FILE="reports/quality-report-${DATE}.md"

echo "# 每日代码质量报告 - $DATE" > $REPORT_FILE
echo "" >> $REPORT_FILE

# 1. 代码审查
echo "## 代码审查结果" >> $REPORT_FILE
claude -p "审查最近一次提交的代码质量" >> $REPORT_FILE 2>&1

# 2. 安全检查
echo "" >> $REPORT_FILE
echo "## 安全检查" >> $REPORT_FILE
claude -p "检查代码中的安全风险" >> $REPORT_FILE 2>&1

# 3. 性能分析
echo "" >> $REPORT_FILE
echo "## 性能分析" >> $REPORT_FILE
claude -p "分析代码性能问题" >> $REPORT_FILE 2>&1

# 发送报告
cat $REPORT_FILE | mail -s "每日代码质量报告" team@company.com

九、本章小结

场景命令示例
非交互式运行claude -p "任务"
指定模型claude -p "任务" --model haiku
JSON 输出claude -p "任务" --output-format json
CI/CD 集成GitHub Actions / GitLab CI
批量处理Shell 循环 + claude
别名快捷alias cc='claude'

下期预告(第 11 篇):权限与安全——构建企业级AI编程助手的安全防线

关注本系列,从入门到专家,系统掌握 Claude Code 的全部技能。

Claude Code CLI 自动化 CI/CD 教程 Anthropic