如何在VSCode中编写、高亮并运行Shell/Bash脚本

冬浩同学_9156

冬浩同学_9156

2026-04-09

749人浏览

原创

vscode中shell脚本不高亮需手动设置语言模式为shell script,并配置文件关联;运行失败常因缺少shebang、执行权限或解释器不匹配;推荐用内置终端执行,配合shellcheck静态检查提升健壮性。

如何在vscode中编写、高亮并运行shell/bash脚本

Shell脚本在VSCode里不高亮?检查文件关联和语言模式

VSCode默认不会把 .sh 文件自动识别为 Shell 脚本,尤其当你新建空文件或后缀名不标准时(比如叫 deploy 没后缀),语法高亮就没了。这不是插件问题,是语言模式没对上。

  • 右下角状态栏看当前语言模式,如果是 Plain Text 或 Unknown,点它 → 选 Shell Script
  • 想永久生效:打开命令面板(Ctrl+Shift+P / Cmd+Shift+P),搜 Configure File Association for '.sh',选 shellscript
  • 如果用的是 .bash 或自定义扩展名,同样在设置里加映射:"files.associations": {"*.bash": "shellscript"}

运行脚本失败:Permission denied 或 command not found

写完保存就点右键“Run Code”?大概率报错。VSCode本身不执行 Shell 脚本,它只是调用终端;而 Linux/macOS 要求脚本有可执行权限,且路径、解释器声明必须正确。

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
  • 缺 #!/bin/bash(或 #!/usr/bin/env bash)第一行?加——否则系统可能用 /bin/sh 执行,导致 [[、source 等 Bash 特有语法报错
  • 没给执行权限?终端里跑 chmod +x ./myscript.sh,再用 ./myscript.sh 运行
  • 直接按 F5 调试?得先装 ShellCheck 和 Bash Debug 插件,并配置 launch.json,否则只是弹个终端闪退

推荐的轻量运行方式:终端内执行,别依赖插件

多数场景根本不需要“一键运行”插件。VSCode 内置终端足够快,也更可控,还能看到真实环境变量和工作路径。

  • 快捷键 Ctrl+`(反引号)呼出集成终端,确保当前目录是脚本所在路径
  • 想快速执行当前编辑的脚本?终端里输 bash ./<code>当前文件名(不用 chmod,绕过权限检查)
  • 需要反复调试参数?改完保存后,在终端按 ↑ 回溯上一条命令,Enter 重跑,比点鼠标快得多
  • 注意:插件如 Code Runner 默认用 sh 而非 bash,容易掩盖语法兼容性问题

ShellCheck 报错但脚本能跑?别忽略它

ShellCheck 是唯一靠谱的静态检查工具,它报的不是“语法错误”,而是“在某些 shell、某些环境、某些输入下会出错”的隐患。比如未加双引号的变量、未声明的变量、错用 = 而非 ==。

  • 装 ShellCheck:macOS 用 brew install shellcheck,Ubuntu 用 sudo apt install shellcheck
  • VSCode 安装官方 ShellCheck 插件后,错误会直接标在编辑器里,悬停看解释
  • 典型坑:if [ $var = "ok" ] —— 当 $var 为空时变成 [ = "ok" ],语法崩;应写成 [ "$var" = "ok" ]
  • 它不报错 ≠ 安全,尤其涉及用户输入、文件路径、通配符时,双引号和 set -u 得手动加上
Shell 脚本的脆弱性藏在环境差异里:同一段代码在你的 macOS 终端能跑,在 CI 的 Ubuntu 容器里可能因为 /bin/sh 实现不同而挂掉。别只盯着“能不能运行”,多看 ShellCheck 提示,少用插件隐藏细节。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

2035

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

3002

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

1016

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

3399

7

vscode是什么_vscode怎么安装配置
vscode是什么_vscode怎么安装配置

VS Code(Visual Studio Code)是一款免费、开源的跨平台代码编辑器,由微软开发和维护。它被广泛用于软件开发和编程,支持多种编程语言和框架。VS Code 同时提供了丰富的功能和扩展性,使开发者可以高效地编写、编辑和调试代码。

2023.06.30

1275

18

vscode怎么运行代码
vscode怎么运行代码

vscode是一个运行于MacOS X、Windows和Linux之上的,针对于编写现代Web和云应用的跨平台源代码编辑器;vscode免费而且功能强大,对JavaScript和NodeJS的支持非常好,自带很多功能,例如代码格式化,代码智能提示补全、Emmet插件等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.21

2672

3

vscode使用的框架介绍
vscode使用的框架介绍

VSCode是一款跨平台代码编辑器,它基于Electron框架和Monaco Editor构建。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1909

12

vscode一般用来写什么语言
vscode一般用来写什么语言

VSCode是一款功能强大的代码编辑器,支持多种编程语言和文件格式。它内置对 JavaScript、Python、Java、C++、TypeScript、HTML/CSS、Go 等语言的支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1727

8

vscode可以写什么语言
vscode可以写什么语言

vscode是一款强大的代码编辑器,支持多种编程语言的开发。通过安装扩展,可以为 JavaScript/TypeScript、Python、Java、C#、PHP、Go、Ruby、Rust、HTML/CSS 等语言提供智能代码补全、调试和格式化等功能。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

2587

12

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程