右下角语言必须设为Bash,否则构建系统不触发;需装wbond版Bash插件、重启后手动选择Bash语法,配置含"shell_cmd":"bash -x \"$file\"","working_dir":"$file_path","selector":"source.shell"的构建系统,并确保文件已保存。

右下角语言必须设为 Bash,否则构建系统不触发
Sublime 不看文件后缀或 #!/bin/bash,只认右下角显示的语法类型。点状态栏语言名 → 选 Bash(不是 Shell Script),这是硬性前提。装了 Bash 插件(wbond 出品)后必须重启,否则菜单里压根不会出现 Bash 选项。如果选完还是灰色或没反应,说明插件没生效,重装 + 重启是唯一解。
shell_cmd 要带 -x 和路径转义,不然出错只报 exit code 1
别用 ./$file,Windows 没执行权限、WSL 找不到路径、Linux 权限不对都会挂;直接调解释器更稳:
{
"shell_cmd": "bash -x \"$file\"",
"working_dir": "$file_path",
"selector": "source.shell",
"file_regex": "^([^:]+):([0-9]+):?([0-9]+)?:? (.*)$"
}
-x 是关键:每行命令执行前都打印出来,能立刻定位哪一行卡住或变量为空。\"$file\" 的双引号和反斜杠转义不能少,否则含空格路径直接失败。
Windows 用户必须用 Git Bash,cmd 或 powershell 不支持 Bash 语法
原生 Windows 没 /bin/bash,写 "shell_cmd": "bash \"$file\"" 必报 command not found。正确做法:
- 装 Git for Windows,勾选 “Add to PATH”
- 查
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'\""
注意:用正斜杠或双反斜杠,单反斜杠在 JSON 里会解析失败;-c 后面的命令要用单引号包 $file_name,避免空格截断。
输出一闪而过?加 read 比新开终端靠谱
Sublime 构建面板不保留终端状态,脚本跑完就关闭,根本看不到错误。别写 gnome-terminal -e 或 osascript —— 它们脱离构建上下文,捕获不到 $? 和 stderr。
最简方案:在脚本末尾加一行 read -p "Press Enter to exit";或者把构建命令改成:
"shell_cmd": "bash \"$file\" > /tmp/sublime-run.log 2>&1 && read -p \"Log written, press Enter\""
这样既能看到实时输出,又能手动检查日志,还不依赖 GUI 环境。
真正容易被忽略的是selector 和 working_dir 的组合效果:即使 shell_cmd 正确,如果 working_dir 没设成 $file_path,脚本里所有相对路径(比如 source ./lib.sh)都会失效——这不是报错,而是静默失败。


















