name: claude-code-bash-patterns description: Claude Code Bash工具模式,包括hooks、自动化、git工作流。用于PreToolUse hooks、命令链、CLI编排、自定义命令,或遇到bash权限、命令失败、安全防护、hook配置。 license: MIT metadata: version: “2.0.0” last_verified: “2025-11-18” production_tested: true token_savings: “55%” errors_prevented: 12 templates_included: 5 references_included: 5
Claude Code Bash模式
状态: 生产就绪 ✅ | 最后验证: 2025-11-18
快速开始
基本命令
ls -la
命令链
bun install && bun run build && bun test
Hooks
创建 .claude-hook-pretooluse.sh:
#!/usr/bin/env bash
# PreToolUse hook - 在每次Bash命令前运行
echo "Running: $1"
加载 references/hooks-examples.md 获取完整hook模式。
五个核心模式
1. 顺序操作 (&&)
使用时机: 每个命令依赖于前一个成功
git add . && git commit -m "message" && git push
原因: 如果任何命令失败则停止链
2. 并行操作 (多个工具调用)
使用时机: 命令独立
消息中包含多个并行Bash工具调用
加载 references/cli-tool-integration.md 获取并行模式。
3. 会话持久性
使用时机: 需要在命令间保持状态
# 设置环境变量
export API_KEY="sk-..."
# 在后续命令中使用(同一会话)
curl -H "Authorization: Bearer $API_KEY" api.example.com
4. 后台进程
使用时机: 长时间运行任务
npm run dev &
# 使用 $! 获取PID
5. 自动化Hooks
使用时机: 需要命令前后逻辑
加载 references/hooks-examples.md 获取所有hook类型。
关键规则
总是做 ✅
- 对顺序依赖使用 &&(不是分号)
- 引用带空格的路径(
cd "带空格的路径") - 在破坏性操作前检查环境(rm, git push --force)
- 优先使用专用工具(Read, Grep, Glob 而不是 Bash)
- 为长时间操作设置超时(最多10分钟)
- 在传递给shell命令前验证输入
- 对重复模式使用hooks(日志记录、验证)
- 维护会话状态(导出变量一次)
- 显式处理错误(检查退出代码)
- 在 .claude/commands/ 中记录自定义命令
绝不做 ❌
- 绝不使用 ; 用于依赖命令(使用 &&)
- 绝不跳过引用带空格的路径
- 绝不运行 rm -rf 而不确认
- 绝不在命令输出中暴露秘密
- 绝不忽略超时限制(最多10分钟)
- 绝不使用bash进行文件操作当专用工具存在时
- 绝不使用换行链接命令(使用 && 或 ; 显式)
- 绝不强制推送到main而不显式用户请求
- 绝不跳过hooks而不用户请求(–no-verify)
- 绝不使用交互式命令(git rebase -i, git add -i)
Git工作流
基本提交
git add . && git commit -m "feat: add feature"
带测试的提交
npm test && git add . && git commit -m "fix: bug fix" && git push
拉取请求
git checkout -b feature/new && git add . && git commit -m "feat: new feature" && git push -u origin feature/new
加载 references/git-workflows.md 获取完整工作流包括:
- 特性分支工作流
- PR创建自动化
- 提交消息约定
- 预提交验证
Hooks:高级自动化
PreToolUse Hook
.claude-hook-pretooluse.sh:
#!/usr/bin/env bash
COMMAND="$1"
# 记录所有命令
echo "[$(date)] Running: $COMMAND" >> ~/claude-commands.log
# 阻止危险模式
if [[ "$COMMAND" =~ rm\ -rf\ / ]]; then
echo "❌ Blocked dangerous command"
exit 1
fi
Hook类型
- pretooluse - 在每次Bash命令前
- stop - 在对话结束前
- user-prompt-submit - 在用户提交消息后
加载 references/hooks-examples.md 获取所有hook类型和示例。
CLI工具集成
npm/bun
bun install && bun run build
wrangler (Cloudflare)
bunx wrangler deploy
gh (GitHub CLI)
gh pr create --title "Fix bug" --body "Description"
加载 references/cli-tool-integration.md 获取完整工具模式。
自定义命令
创建 .claude/commands/deploy.md:
---
description: 部署到生产环境
---
运行这些步骤:
1. 运行测试:`npm test`
2. 构建:`npm run build`
3. 部署:`wrangler deploy`
用户可以通过以下方式调用:/deploy
加载 templates/custom-command-template.md 获取模板。
安全
工具白名单
settings.json:
{
"dangerousCommandsAllowList": [
"git push --force"
]
}
秘密管理
# ✅ 好:使用环境变量
export API_KEY="$SECURE_VALUE"
# ❌ 差:硬编码秘密
curl -H "Authorization: Bearer sk-abc123..."
加载 references/security-best-practices.md 获取完整安全指南。
常见用例
用例1:提交前测试
npm test && git add . && git commit -m "message"
用例2:带验证的部署
npm run lint && npm test && npm run build && bunx wrangler deploy
用例3:多仓库操作
cd repo1 && git pull && cd ../repo2 && git pull
用例4:后台进程
npm run dev &
加载 references/cli-tool-integration.md 获取更多模式。
故障排除
问题:命令超时
解决方案: 增加超时或使用后台模式
# 后台模式
npm run dev &
问题:带空格的路径失败
解决方案: 引用路径
cd "path with spaces/file.txt"
问题:Hook阻止命令
解决方案: 检查 .claude-hook-pretooluse.sh 中的逻辑
加载 references/troubleshooting-guide.md 获取所有问题。
何时加载参考文献
加载 references/git-workflows.md 当:
- 设置git自动化
- 程序化创建PRs
- 需要提交消息约定
- 想要预提交验证模式
加载 references/hooks-examples.md 当:
- 创建自定义hooks
- 需要hook模板
- 想要验证模式
- 实现日志记录/安全
加载 references/cli-tool-integration.md 当:
- 编排多个CLI工具
- 需要工具特定模式
- 想要并行执行示例
- 故障排除工具集成
加载 references/security-best-practices.md 当:
- 配置安全防护
- 设置白名单
- 管理秘密
- 防止危险操作
加载 references/troubleshooting-guide.md 当:
- 调试命令失败
- 遇到超时
- Hooks行为异常
- 会话状态问题
使用捆绑资源
参考文献 (references/)
- git-workflows.md - 完整git自动化模式
- hooks-examples.md - 所有hook类型和示例
- cli-tool-integration.md - 工具编排模式
- security-best-practices.md - 安全配置指南
- troubleshooting-guide.md - 常见问题和解决方案
模板 (templates/)
- custom-command-template.md - 自定义命令模板
- settings.json - 安全设置示例
- .envrc.example - 环境变量示例
- github-workflow.yml - GitHub Actions集成
- dangerous-commands.json - 危险模式列表
示例
特性开发工作流
git checkout -b feature/oauth && \
npm test && \
git add . && \
git commit -m "feat(auth): add OAuth support" && \
git push -u origin feature/oauth
CI/CD管道
npm run lint && \
npm test && \
npm run build && \
bunx wrangler deploy
多项目更新
cd project1 && bun install && cd ../project2 && bun install
官方文档
- Claude Code Bash工具: https://docs.claude.com/en/docs/claude-code/tools
- Hooks: https://docs.claude.com/en/docs/claude-code/hooks
- 自定义命令: https://docs.claude.com/en/docs/claude-code/custom-commands
问题?疑问?
- 检查
references/troubleshooting-guide.md获取常见问题 - 查看
references/git-workflows.md获取git模式 - 参考
references/hooks-examples.md获取自动化 - 加载
references/security-best-practices.md获取安全