用途:在项目工作目录中执行单条 shell 命令,并返回 stdout 与 stderr 合并后的输出。适合一次性命令、包安装、构建和快速检查。
主要能力与参数:必填 command(shell 命令字符串);可选 timeout(秒,无默认值,安装或构建等耗时命令应始终设置)。
使用规则:无状态,每次调用都启动全新 shell,cd 与环境变量不会保留,因此切换目录须写成 cd /path && command 形式;可能超过 30 秒的命令(安装、构建、下载)应设置 timeout,建议 120–300;禁止运行交互式命令(如 vim、less、top、裸 python/node REPL);文件操作优先使用专用工具(grep、find、ls、read)。输出会被截断为最后 200 行或 5KB,若被截断,完整输出会保存到临时文件。
示例:{"name": "bash", "input": {"command": "ls -la /home/user/project"}};带超时示例:{"name": "bash", "input": {"command": "cd /home/user/project && npm install", "timeout": 120}}。
适用场景:一次性命令、包安装、构建、快速检查。多步骤工作流、重复命令或需要保持状态的会话应使用 shell-session;文件搜索、目录列表和模式匹配应使用 grep/find/ls,速度更快且遵循 .gitignore。
限制:无状态,不保留 cd 与环境变量;输出有截断;不支持交互式命令;未提供默认超时。