Я установил Windows Subsystem для Linux (WSL), чтобы использовать Bash для Ubuntu в Windows (далее сокращенно до «Bash».) В cmd.exe
я могу запустить bash -c gcc --version
а также использовать cmd -k bash -c gcc --version
из меню «Пуск». Однако я заметил, что не могу запустить ту же команду из сторонних приложений, например, Sublime Text или Atom.
Рассмотрим следующую систему сборки для Sublime Text и на данный момент игнорируем тот факт, что это ничего не будет собирать:
{
"cmd": [ "bash", "-c" "gcc", "--version" ],
"working_dir": "${project_path:${folder}}",
"selector" : "source.c"
}
Выполнение команды построения приведет к Error: 0x80070057
. При включенном унаследованном режиме для cmd.exe
появляется сообщение об ошибке « Unsupported console settings. In order to use this feature the legacy mode must be disabled.
Среди прочего я уже пытался заставить его работать:
Использование абсолютных путей к
bash.exe
, например%SystemRoot%\System32\bash.exe
Запустите пакетный файл в инструменте сборки (content:
bash -c gcc --version
). Примечательно, что пакетный файл работает при запуске изcmd.exe
Измените команду сборки на
[ "cmd", "/k", "bash", "-c" "gcc", "--version"]
Добавить
"shell": true
в мой файл сборки
Иногда ошибка меняется на «[bash] не распознается как внутренняя или внешняя команда», даже если C:\Windows\System32
находится на моем пути.
Есть ли ограничение, что Bash может быть запущен только из cmd.exe
? Есть ли обходные пути, которые позволили бы мне запустить batch
из Sublime Text?