vscode终端默认为powershell且执行策略受限,需运行set-executionpolicy remotesigned -scope currentuser解决;切换默认终端需通过ctrl+shift+p选择配置;脚本执行失败常因shebang错误、换行符格式或工作目录问题;调试功能与终端配置相互独立。

终端默认使用 PowerShell,脚本执行策略禁止运行本地脚本
VSCode 内置终端默认启动的是 PowerShell(Windows),而它的 ExecutionPolicy 默认是 Restricted,连当前目录下的 .ps1 脚本都不让运行——这不是权限问题,是 PowerShell 的安全策略。你看到的错误通常是:Running scripts is disabled on this system.
解决思路不是“提权”,而是按需调整策略范围,且仅对当前用户生效:
- 在 VSCode 终端中运行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser - 如果提示需要管理员权限,说明你之前用的是系统级策略,此时改用
-Scope CurrentUser就绕过提权需求 - 验证是否生效:
Get-ExecutionPolicy -Scope CurrentUser应返回RemoteSigned - 重启 VSCode 终端(或关掉再开一个新终端),策略才生效
想用 cmd 或 bash 代替 PowerShell,但终端始终不切换
VSCode 不会自动记住你选的终端类型,每次新开终端都可能回到默认的 PowerShell。关键在于设置默认配置,而不是临时点右上角下拉菜单。
操作路径:Ctrl+Shift+P → 输入 Terminal: Select Default Profile → 回车 → 选择 Command Prompt(Windows)或 Git Bash / WSL Bash(如已安装)
注意几个易错点:
- 如果列表里没出现 Git Bash 或 WSL,说明 VSCode 没检测到对应可执行文件路径,需手动配置
terminal.integrated.profiles.windows设置项 - 修改后要关闭所有终端面板,再新建一个,否则旧终端仍沿用老配置
- macOS/Linux 用户遇到类似问题,通常是因为 shell 启动文件(如
~/.zshrc)里有语法错误,导致终端初始化失败,表现为“空白终端”或立即退出
脚本有执行权限但报错“command not found”或“Permission denied”
这往往不是 Windows 的问题,而是你在 macOS/Linux 下用 VSCode 终端运行 ./script.sh 时的真实痛点:脚本确实有 x 权限,但依然被拒绝。
常见原因和应对方式:
- 脚本第一行
#!/bin/bash指向的解释器不存在或路径不对(比如用了#!/usr/bin/env bash却没装bash)——用which bash确认路径,再修正 shebang - 脚本保存为 DOS 格式(CRLF 换行),Linux/macOS 的 shell 会把
\r当作命令名的一部分,导致找不到命令——用 VSCode 右下角换行符标识切换为LF,或用dos2unix script.sh - VSCode 终端工作目录不是脚本所在目录,
./相对路径失效——先cd进去,或直接用绝对路径调用
改了策略或换了 shell,脚本仍无法调试或断点不生效
终端能跑 ≠ 调试器能接管。如果你用 VSCode 的 Run and Debug 功能(F5)运行脚本,它走的是独立的调试协议,跟终端 shell 完全无关。
例如 Python 脚本:
- 即使终端里
python script.py成功,F5报错可能是因为launch.json中python.defaultInterpreterPath指向错误解释器 - Shell 脚本调试需额外插件(如
ShellCheck+Bash Debug),且必须在launch.json中显式指定type: "bash"和request: "launch" - PowerShell 脚本调试依赖
PowerShell扩展,且要求脚本以.ps1结尾、保存在磁盘上(不能是未保存的临时文件)
真正卡住的地方,常常是调试配置和终端配置混为一谈——它们各自独立,改了一个,另一个未必同步。











