当前位置: 首页 > 知识库问答 >
问题:

Windows Bash和Visual Studio代码:如何将Bash作为运行任务启动?

东郭勇
2023-03-14

如何从Visual Studio代码中将Windows Bash作为运行任务运行?

以下是我多次尝试任务的一些例子。json来完成此操作。

{
    "version": "0.1.0",
    "command": "cmd",
    "isShellCommand": true,
    "args": [ "RunShellScript.bat" ],
    "showOutput": "always"
}

RunShellScript.bat只有这一行:bash myShellScript.sh。如果您从开始打开cmd并键入该行,它将执行。如果您双击该文件,它也可以完美运行。但是,当从VSCode启动时,该输出将挂起,直到我终止它。

尝试数2:

{
    "version": "0.1.0",
    "command": "cmd",
    "isShellCommand": true,
    "args": [ "bash myShellScript.sh" ],
    "showOutput": "always"
}

这也挂着,就像上面一样。

第三次尝试:

{
    "version": "0.1.0",
    "command": "C:/Windows/System32/bash",
    "isShellCommand": false,
    "args": [ "myShellScript.sh" ],
    "showOutput": "always"
}

这给了我:

Failed to launch external program C:/Windows/System32/bash myShellScript.sh
spawn C:/Windows/System32/bash ENOENT

在某些情况下,我还尝试将“isShellCommand”变量设置为true和false,但没有效果。

有人知道怎么做吗?

共有3个答案

汲永嘉
2023-03-14

尝试:

{
    "version": "0.1.0",
    "command": "bash",
    "isShellCommand": true,
    "args": [ "myShellScript.sh" ],
    "showOutput": "always"
}

或者,您可以向文件中添加一个shebang:

#!/bin/bash

然后写入脚本的路径:

{
    "version": "0.1.0",
    "command": "/path/to/script.sh",
    "isShellCommand": true,
    "args": [],
    "showOutput": "always"
}
鲁展
2023-03-14

在我的Windows 10机器上,有一个新安装的bash,这对我来说很好:

{
    "version": "0.1.0",
    "command": "bash",
    "isShellCommand": true,
    "args": [ "shellscript.sh" ],
    "showOutput": "always"
}

Shelbang版本的shellscript。sh as命令对我不起作用。

您还可以使用bash-c“

{
    "version": "0.1.0",
    "command": "bash",
    "isShellCommand": true,
    "args": ["-c", "echo \"test\""],
    "showOutput": "always"
}

宰宣
2023-03-14

我也在想我怎么能做同样的事情。

我试过你的两个选择,但两个都没用。问题似乎在于,无论visualstudio代码在什么上下文中运行bash,都无法识别它。我尝试过各种方法:

  • “命令”:“C:/Windows/System32/bash.exe”

我会继续努力,如果我得到一些工作。

编辑:明白了。要归功于这个人-https://aigeec.com/using-windows-10-anniversary-bash-with-visual-studio-code/

总之,归根结底,我使用的是64位操作系统,这意味着bash。exe位于C:\Windows\System32中。有一次我复制了bash。正如博客文章所建议的那样,VisualStudio代码的默认构建操作(Ctrl-Shift B)按预期运行。

这似乎是一个有点老套的解决办法——也许值得向MSFT提出,看看我们是否可以对此做些什么。

编辑:这是我的任务。json应要求:

{
  // See https://go.microsoft.com/fwlink/?LinkId=733558
  // for the documentation about the tasks.json format
  "version": "0.1.0",
  "command": "bash",
  "isShellCommand": true,
  "args": [ "./gulp.sh" ],
  "showOutput": "always",
  "tasks": [{
    "taskName": "scripts",
    "isBuildCommand": true,
    "problemMatcher": "$gulp-tsc",
    "isWatching": true
  }]

}

吞咽sh只包含一个命令;'大口吞下’:-)但你基本上可以把你想要的东西放进去,我想你可以有几个。sh脚本,以满足不同任务的需要

作为对Sysnative使用的响应,不幸的是它似乎不理解这一点,构建任务也不会运行。

 类似资料:
  • 我遵循以下指示https://code.visualstudio.com/docs/setup/mac但我没有成功。这就是我进去时发生的事情 我得到了以下信息: 我还查找了以下问题:如何在OSX上从命令行打开Visual Studio代码?,这没用。 我在VSCode中只有一个终端选项,zsh。

  • WSL使gcc和其他Linux工具变得容易。您可以使用脚本来快速配置WSL开发环境,因此如果您搞砸了一些事情,您可以快速销毁它,并以最小的成本重新开始。因此,我想在WSL而不是Windows上运行任务。 例如,在Sublime3中,我可以使用GCC的WSL安装构建C代码,只需使用以下代码创建一个新的构建系统: 到目前为止,我一直在努力想办法在VS Code上复制这个,但没有成功。似乎至少还有一个人

  • 我有一个gradle项目,其中“单元测试”和“集成测试”任务定义如下: 我在IntelliJ中创建了一个运行配置来运行所有单元测试,如图像显示: 并对任务“integrationTest”执行了相同的操作: IntelliJ“理解”测试任务并运行它,显示图形结果,如下图所示: 当它运行“集成测试”任务时不会发生同样的情况。结果以文本形式显示,就像我通过命令行运行任务时一样。

  • 例如,在node.js源文件的顶部: …或未使用的局部变量等。

  • 我正在学习Visual Studio Code上的Java。我已经在其中安装了"Microsoft扩展Java"。我的基本Java程序运行良好,无需软件包声明。但我想打包我的程序。如何? 早些时候我用了“IntelliJ IDEA”。我曾经启动一个新项目并声明“package com.java.learn”。在VisualStudio代码中,没有创建新java项目的选项。有一个创建工作区的选项,但

  • 当我启动start WebLogic.cmd在mydomed\bin中时,我的服务器正常工作。当我注销时,它会自动停止。在这里,我试图创建一个窗口服务,如oracle文档“http://docs.oracle.com/cd/E11035_01/wls100/server_start/winservice.html”中所述。 但我的服务不再说这与此无关。 这是我创建的2个文件 1.)run.cmdD