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 fromcmd.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?
cmd
line to"cmd": [ "cmd.exe", "-k", "bash -c gcc --version" ]
, and/or try addingshell: true
.