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

Ctrl+B 没反应?先看右下角语法和构建系统是否匹配
Sublime 不会自动根据 #!/bin/bash 或 .py 后缀决定怎么跑,它只认两件事:右下角显示的语法类型(比如 Shell-Unix-Generic 或 Python),以及 Tools → Build System 里手动选中的项。哪怕文件名是 test.sh,如果右下角写着 Plain Text,Ctrl+B 就不会触发 Shell 构建。
- 右下角点语言名 → 选
Shell-Unix-Generic(自带,稳定)或Bash(需额外装插件) - 菜单栏 →
Tools → Build System→ 必须手动选中你配的构建项,不是Automatic - 新建的
.sublime-build文件保存后不会热重载;改完配置要么重启 Sublime,要么删掉Packages/User/.cache/下缓存
Windows 下跑 Shell 脚本必须用 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% 和 .sublime-build 内容无关,是执行层面的问题:要么脚本本身没读权限,要么构建命令错误地依赖了可执行位(x)。
- 终端里运行
ls -l script.sh,确认权限含r(如-rwxr-xr-x或至少-rw-r--r--) - 快速修复:
chmod +r script.sh(不是+x) - 更稳做法:构建里别用
./$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/su_out 2>&1 && cat /tmp/su_out" - 注意:Sublime 的构建面板不支持
input()类交互,有输入需求就别指望它,直接切终端
.sublime-build 文件,记得用终端手动跑一遍相同命令,验证解释器路径、工作目录、输入输出行为是否一致。











