Skip to content

Bash 执行工具

Bash 是 Claude Code 里最强大的工具,也是最危险的。能跑任何命令意味着能做任何事——好事和坏事。所以它的安全防护也是最复杂的。

基本能力

typescript
Bash({
  command: "npm test",
  timeout: 120000,  // 最长 120 秒
  description: "Run project tests"
})
  • 执行 shell 命令并返回 stdout/stderr
  • 工作目录在命令间保持
  • Shell 环境从用户 profile 初始化
  • 支持后台执行(run_in_background

23+ 种安全检查

BashTool 内置的安全检查分几大类:

命令注入防护

  • 检测嵌套命令($(...), `...`
  • 变量注入检测
  • 管道命令分析

危险操作拦截

  • rm -rf / 等递归删除
  • chmod 777 等权限修改
  • dd if=/dev/zero 等磁盘操作
  • kill -9 等进程操作

网络安全

  • 未授权的网络请求
  • 数据外泄检测

环境安全

  • 环境变量修改
  • Shell 配置修改

超时机制

  • 默认超时 120 秒
  • 可通过参数自定义(最长 600 秒 / 10 分钟)
  • 超时后进程被 kill

后台执行

typescript
Bash({
  command: "npm run build",
  run_in_background: true
})

后台执行的命令不阻塞 AI 的主循环,完成后通过通知机制回报结果。适合长时间运行的构建、测试任务。

最佳实践

  • 优先用专用工具(Read、Grep)而不是 Bash 里的 cat、grep
  • 多个独立命令用 && 串联
  • 避免交互式命令(不支持 stdin 输入)
  • 路径包含空格时用双引号