3
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?
Did you disable the legacy mode for cmd? You can see how to disable legacy mode in the comments of the top answer.
– DrZoo – 2016-10-28T16:54:34.840Couple ideas... Try changing the
cmd
line to"cmd": [ "cmd.exe", "-k", "bash -c gcc --version" ]
, and/or try addingshell: true
. – Ƭᴇcʜιᴇ007 – 2016-10-28T17:17:18.100Thanks for your suggestions, I already tried these (as mentioned in the question). I edited my post and put my other attempts into a numbered list, which should be more legible. – idleberg – 2016-10-28T18:43:36.757