I've installed Windows Subsystem for Linux (WSL) in order to Bash on Ubuntu on Windows (in the following abbreviated to “Bash”.) In cmd.exe
I can run bash -c gcc --version
as well as I can use cmd -k bash -c gcc --version
from the start menu. However, I noticed that I cannot run the same command from third-party applications, e.g. Sublime Text or Atom.
Consider the following build system for Sublime Text and, for the moment, ignore that fact that this wouldn't build anything:
{
"cmd": [ "bash", "-c" "gcc", "--version" ],
"working_dir": "${project_path:${folder}}",
"selector" : "source.c"
}
Running the build command will result into Error: 0x80070057
. With legacy mode for cmd.exe
enabled, the error reads Unsupported console settings. In order to use this feature the legacy mode must be disabled.
Among the other things I already tried to get it to work:
Using absolute paths to bash.exe
, e.g. %SystemRoot%\System32\bash.exe
Run a Batch file in the build tool (content: bash -c gcc --version
). Notably, the Batch file works when run from cmd.exe
Change the build command to [ "cmd", "/k", "bash", "-c" "gcc", "--version"]
Add "shell": true
to my build file
At times the error changes to ”[bash] is not recognized as an internal or external command”, even though C:\Windows\System32
is in my path.
Is there a limitation that Bash can only be launched from cmd.exe
? Are there any workarounds that would allow my to launch batch
from Sublime Text?
I think you can give a try to this solution.
Using Windows Subsystem for Linux (WSL) from Sublime Text
And no, it isn't necessary to replace bash
with bash.exe
.
I don't have your environment to test this, but I suggest replacing "bash" with "bash.exe". The Windows cmd.exe command requires the .exe suffix to execute the bash.exe command. The WSL command /usr/bin/bash is not the same command as the Windows command C:\Windows\System32\bash.exe.
User contributions licensed under CC BY-SA 3.0