跳到主要内容

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 中断子进程)
  • 输出截断(防止超长输出)

上一节:工具注册 | 下一节:文件工具