不能——Sublime Text 是编辑器,需通过构建系统调用系统 Shell(如 bash/zsh)执行.sh文件;需配置Shell.sublime-build、设置语法高亮为Shell-Unix、启用对应构建系统,并确保脚本有执行权限、shebang正确、解释器路径匹配。

Sublime Text 能不能直接运行 .sh 文件?
不能——Sublime Text 本身是编辑器,不带执行环境。所谓“运行”,其实是通过构建系统(Build System)调用系统 Shell(如 bash、zsh)来执行脚本。关键不是 Sublime “支持 sh”,而是你本地有没有可用的 Shell,以及构建配置是否指向了正确的解释器。
怎么写一个能跑通的 Shell 构建系统?
在 Sublime Text 中,选择 Tools → Build System → New Build System…,粘贴以下内容并保存为 Shell.sublime-build(路径通常自动落在 Packages/User/):
{
"shell_cmd": "bash \"${file}\"",
"file_regex": "^([^:]+):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.shell"
}
说明:
-
shell_cmd用bash显式调用(避免依赖$SHELL或登录 Shell 的配置差异);${file}是当前文件绝对路径,加双引号防路径含空格出错 -
working_dir设为${file_path},确保脚本内相对路径(如./lib.sh)能正确解析 -
selector值为source.shell,对应 Sublime 默认的 Shell 语法高亮作用域;如果你用的是.bash或.zsh后缀,可能需要改成source.bash等 - 如果脚本需要交互输入(如
read),默认构建系统不支持——得换用exec插件或终端调用
为什么按 Ctrl+B 没反应 / 报错 “/bin/bash: No such file or directory”?
常见原因和对策:
- 你的系统没装
bash(比如某些精简版 Linux 容器或 macOS 新版本默认用zsh):改shell_cmd为zsh \"${file}\"或先运行which bash确认路径 - 脚本没有可执行权限:在终端执行
chmod +x your_script.sh,否则即使构建系统调用成功,也会报Permission denied - 脚本首行 shebang 错误,比如写了
#!/bin/bash但系统里bash实际在/usr/bin/bash:要么修正 shebang,要么干脆不依赖它,靠构建系统指定解释器 - Windows 用户试图直接运行:WSL 是可行方案,但原生 Windows 不带
bash;别用 Git Bash 的路径硬塞进shell_cmd,容易因空格、反斜杠、路径转义崩掉
想让 Sublime 自动识别 .sh 文件并高亮+构建,要配什么?
两件事必须做:
- 保存文件时后缀必须是
.sh(或其他被 Sublime Shell 语法识别的后缀,如.bash);右下角状态栏应显示 “Shell-Unix” 或 “Bash” —— 如果显示 “Plain Text”,点击它手动选 “Shell-Unix” - 确保构建系统已启用:菜单 Tools → Build System 下勾选你刚建的
Shell(不是 “Automatic”);或者快捷键 Ctrl+Shift+P → Set Build System: Shell - 注意:Sublime 不会自动根据 shebang 行切换语法或构建系统,全靠后缀和手动设置
真正卡住人的往往不是配置多难,而是脚本权限、shebang 和构建系统解释器三者没对齐——检查这三点,90% 的“运行不了”就解决了。










