Bash 工具
源码:
tools/BashTool/(160KB)
1. 概述
Bash 是 Claude Code 最核心的执行工具,负责所有 Shell 命令的执行。它是整个工具系统中最大的单一工具实现(160KB)。
2. 执行流程
模型调用 Bash(prompt)
│
↓
┌─────────────────────────────┐
│ 权限检查 │
│ - 是否允许执行? │
│ - 是否有危险命令? │
└──────────┬──────────────────┘
│
┌─────┴─────┐
│ │
[允许] [拒绝]
│
↓
┌─────────────────────────────┐
│ 安全检查 (24 项) │
│ - 路径遍历检测 │
│ - 环境变量注入 │
│ - 管道命令分析 │
│ - 子 Shell 检测 │
└──────────┬──────────────────┘
│
↓
┌─────────────────────────────┐
│ 执行命令 (spawn) │
│ - 超时控制 │
│ - 输出截断 │
│ - 信号传递 (SIGINT) │
└──────────┬──────────────────┘
│
↓
返回结果给模型
3. 安全检查
Bash 工具实现了 24 项安全检查,包括:
- 路径遍历防护
- 环境变量过滤
- 危险命令检测(
rm -rf /等) - 子 Shell 逃逸检测
- 管道命令分析
4. 特性
- 支持超时控制
- 流式输出(长命令实时显示)
- SIGINT 信号传递(Ctrl+C 中断子进程)
- 输出截断(防止超长输出)