ctrl+b没反应需先确认构建系统绑定成功:右下角语法必须设为shell-unix-generic或bash,且tools→build system中手动选中对应构建项;未保存文件、windows未配git bash路径、权限不足或selector不匹配均会导致失败。

Ctrl+B没反应?先确认构建系统是否绑定成功
Sublime 不会因为文件有 #!/bin/bash 就自动启用 Shell 构建,它只看两个东西:右下角显示的语法类型(必须是 ShellScript 或 Bash),以及当前选中的构建系统是否匹配 selector 字段。
- 右下角点击语言名 → 选
Shell-Unix-Generic(自带,稳定)或Bash(需装 wbond 的 Bash 插件) - 菜单栏 →
Tools→Build System→ 确认已手动选中你配置的构建项,不是Automatic - 新建的
.sublime-build文件保存后,Sublime 不会热重载,改完要重启或删掉Packages/User/.cache/下缓存 - 未保存的文件按
Ctrl+B会失败——$file是空字符串,命令变成bash ""
Windows 下必须用 Git Bash,别硬配 bash "$file"
Windows 原生没有 /bin/bash,写 "shell_cmd": "bash \"$file\"" 必报 bash: command not found 或静默失败。Git Bash 是最轻量、路径兼容性最好的方案。
- 先装 Git for Windows(勾选 “Add to PATH”),终端里运行
git-bash --version验证 - 查
git-bash.exe实际路径,常见为C:/Program Files/Git/git-bash.exe(注意用正斜杠或双反斜杠) - 构建系统里写:
"shell_cmd": "C:/Program Files/Git/git-bash.exe --cd=\"$file_path\" -c \"bash '$file_name'\"" - 别用
cmd或powershell替代——它们不支持[[ ]]、source、数组等 Bash 语法,测试通过 ≠ 真实可用
Permission denied 不是配置错,是权限或调用方式问题
报这个错,90% 和构建配置无关,而是脚本没执行权限,或者构建命令错误地依赖了 x 位。
- 终端里跑
ls -l script.sh,确认权限含x(如-rwxr-xr-x);快速修复:chmod +x script.sh - 更稳做法:构建里别用
./$file,改用["bash", "$file"]或"shell_cmd": "bash \"$file\""——这样只依赖读权限,跳过x检查 - WSL 下还要注意路径映射:
$file是 Windows 路径(C:\work\test.sh),得转成/mnt/c/work/test.sh,否则wsl bash找不到文件
输出一闪而过?别靠新开终端,用 read 或重定向
Sublime 构建面板默认不保留终端状态,尤其脚本末尾没交互时,输出直接消失。新开 gnome-terminal 或 osascript 会脱离构建上下文,无法捕获 $? 或标准错误。
- 在脚本末尾加
read -p "Press Enter to exit"最简单有效 - 或改构建命令:
"shell_cmd": "bash \"$file\" > /tmp/sublime-run.log 2>&1 && read -p \"Log written. Press Enter\"" - Mac 用户注意:GUI 应用默认不加载
~/.zshrc,PATH 可能缺失;可改用bash -l -c "your_cmd"(-l表示 login shell)
PATH,或用了 Bash 特有语法却用 sh 跑——这些 Sublime 都不会帮你兜底。











