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.exeRun a Batch file in the build tool (content:
bash -c gcc --version). Notably, the Batch file works when run fromcmd.exeChange the build command to
[ "cmd", "/k", "bash", "-c" "gcc", "--version"]Add
"shell": trueto 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?