Sublime Text怎么配置Shell脚本_Sublime Text运行Linux脚本设置【运维】

阿墨吖_8503

阿墨吖_8503

2026-05-09

825人浏览

原创

sublime text 本身不执行 shell 脚本,仅通过构建系统调用系统 bash/sh 执行;需同步解决语法识别(设为 bash)、执行权限(chmod +x 或改用 bash "$file")和构建配置(正确 shell_cmd、working_dir、selector)三件事,否则 ctrl+b 必然失败。

sublime text怎么配置shell脚本_sublime text运行linux脚本设置【运维】

Sublime Text 本身不执行 Shell 脚本,它只调用系统 shell(如 bash 或 sh)去运行文件;所以“配置成功”的核心不是让 Sublime 变成解释器,而是让它**安全、可靠、符合预期地把脚本交给系统执行**。关键卡点永远在三处:语法识别不对、构建命令写错、权限或路径失控。

为什么 Ctrl+B 没反应或报 Permission denied

这不是 Sublime 坏了,是 Unix 权限机制在起作用 —— macOS/Linux 下 .sh 文件默认没有执行位,./script.sh 必然失败。而很多 Build System 示例直接写 "shell_cmd": "./$file",这就等于把权限检查甩给系统,一碰就崩。

  • 先在终端确认权限:ls -l script.sh,看到 -rwxr-xr-x 才对;没 x 就跑 chmod +x script.sh
  • 更稳妥的做法是绕过权限检查:改用 bash "$file" 或 sh "$file",只要文件可读就能跑
  • 别用 sh "$file" 测试来“验证脚本逻辑”——sh 不支持 [[ ]]、数组、source 等 Bash 特性,会掩盖真实错误

怎么写一个真正能用的 Bash.sublime-build

网上很多配置漏引号、混用 cmd 和 shell_cmd、硬写 sh -c "bash $file",结果路径含空格就崩溃,或者工作目录错乱导致 ./config.json 找不到。

  • 推荐用 shell_cmd(支持 shell 变量和重定向),不用 cmd(需要手动转义空格)
  • 必须加双引号包裹变量:"shell_cmd": "bash \"$file\"",否则路径带空格时命令截断
  • 显式指定工作目录:"working_dir": "$file_path",否则脚本里所有相对路径都指向 Sublime 安装目录
  • "selector": "source.shell" 或 "source.bash",确保只对 .sh 文件生效;如果用的是 Bash 插件,选 source.bash 更准

完整示例(保存为 Bash.sublime-build):

linux-performance-analyzer
linux-performance-analyzer

Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。

下载
{
  "shell_cmd": "bash \"$file\"",
  "working_dir": "$file_path",
  "selector": "source.bash",
  "encoding": "utf-8"
}

为什么 .sh 文件关键词全是灰色、不着色

Sublime 完全忽略 #!/bin/bash,只认右下角显示的语言类型。显示 “Plain Text” 或 “Shell Script” 都不行,必须是 Bash(来自 Package Control 的 Bash 插件)或 Shell-Unix-Generic(自带,但高亮弱)。

  • 装插件:Package Control → Install Package → 搜 Bash(作者 wbond),别装 Bash-IDE
  • 重启后打开任意 .sh 文件,点右下角语言名 → 选 Bash
  • 再点 View → Syntax → Open all with current extension as… → Bash,这样所有 .sh 就永久绑定
  • 不装插件也行,但 ${arr[@]}、[[ $a == $b ]] 这类语法不会高亮,容易写错还不自知

Windows 上能不能硬配?

不能。原生 Windows 没有 #!/usr/bin/env bash 语义,bash "$file" 会直接报 command not found。WSL 是唯一靠谱方案:在 WSL 里装 Sublime(或用 subl 打开 WSL 路径下的文件),再按 Linux 方式配 Build System。

最容易被忽略的一点:Build System 里的 $file_path 在 WSL 中展开的是 Windows 路径(如 C:\Users\name\script.sh),必须用 wslpath -u 转换,否则 bash 根本找不到文件。真要搞,得写成:"shell_cmd": "bash $(wslpath -u \"$file\")" —— 但这已经超出轻量编辑需求,不如直接进 WSL 终端跑。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3650

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3173

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2233

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5350

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5002

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

2993

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2505

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

2719

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习