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 输入)
- 路径包含空格时用双引号