首页  编辑  

VS Code调试Bash脚本

Tags: /计算机文档/软件应用技巧/   Date Created:
Windows下,如果要单步调试Bash脚本,可以使用VS Code(v1.95.1)配合插件Bash Debug(本文使用的版本是 v0.3.9),WSL环境如下:
WSL 版本: 2.3.24.0
内核版本: 5.15.153.1-2
WSLg 版本: 1.0.65
MSRDC 版本: 1.2.5620
Direct3D 版本: 1.611.1-81528511
DXCore 版本: 10.0.26100.1-240331-1435.ge-release
Windows 版本: 10.0.19045.5011
  1. 先安装 WSL,参考 玩转WSL
  2. 打开VS Code,安装插件 Bash Debug:
  3. 打开项目或 sh 文件,切换到 Debug,点击 "创建 launch.json 文件",然后选择 "Bash Debug",如下图:
  4. 在创建的文件中,添加 "terminalKind": "external", 这一行,如下图:
    {
        // 使用 IntelliSense 了解相关属性。
        // 悬停以查看现有属性的描述。
        // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
                "type": "bashdb",
                "request": "launch",
                "name": "Bash-Debug (simplest configuration)",
                "terminalKind": "external",
                "program": "${file}"
            }
        ]
    }
    如果不加这一行,那么被调试的bash,是无法接受命令行输入的,只能调试简单的输出的bash脚本。
    terminalKind 可以为 debugConsole(无法调试输入),integrated(集成的Bash Debug Console),external(推荐,单独打开终端窗口运行脚本)
  5. 此时就可以正常调试 sh 文件了,点击后,会出现 [Bash Debug Console]:
     
如果启动调试,出现错误:
bash: -c: line 1: conditional binary operator expected
bash: -c: line 1: syntax error near `-p'
解决方法:
修改launch.json中,terminalKind,从 integrated 改为 external。

调试的时候如果报错:
$'\r': command not found
syntax error near unexpected token `$'{\r''
则说明 sh 文件,是Windows文件换行格式(\r\n),请修改文件换行为Linux(\n)即可,可以使用Notepad++更换换行格式。