Como iniciar o Bash no Ubuntu no Windows a partir de aplicativos de terceiros?

3

Instalei o Windows Subsystem para Linux (WSL) para Bash no Ubuntu no Windows (no seguinte, abreviado para "Bash"). Em cmd.exe , posso executar bash -c gcc --version , assim como posso usar cmd -k bash -c gcc --version no menu inicial. No entanto, notei que não posso executar o mesmo comando a partir de aplicativos de terceiros, por exemplo, Texto sublime ou Atom.

Considere o seguinte sistema de compilação para o Sublime Text e, no momento, ignore o fato de que isso não criaria nada:

{
  "cmd": [ "bash", "-c" "gcc", "--version" ],
  "working_dir": "${project_path:${folder}}",
  "selector" : "source.c"
}

A execução do comando de compilação resultará em Error: 0x80070057 . Com o modo legado para cmd.exe ativado, o erro indica Unsupported console settings. In order to use this feature the legacy mode must be disabled.

Entre as outras coisas, eu já tentei que funcionasse:

  1. Uso de caminhos absolutos para bash.exe , por exemplo %SystemRoot%\System32\bash.exe

  2. Execute um arquivo em lote na ferramenta de construção (conteúdo: bash -c gcc --version ). Notavelmente, o arquivo em lote funciona quando executado a partir de cmd.exe

  3. Altere o comando de criação para [ "cmd", "/k", "bash", "-c" "gcc", "--version"]

  4. Adicione "shell": true ao meu arquivo de construção

Às vezes, o erro muda para "[bash] não é reconhecido como um comando interno ou externo", mesmo que C:\Windows\System32 esteja em meu caminho.

Existe uma limitação de que o Bash só pode ser lançado a partir de cmd.exe ? Há alguma solução alternativa que permita que eu lance o batch do Sublime Text?

    
por idleberg 28.10.2016 / 18:17

2 respostas

3

Acho que você pode tentar essa solução.

Usando o Windows Subsystem para Linux (WSL) do Sublime Text

E não, não é necessário substituir bash por bash.exe .

    
por 09.11.2016 / 06:26
0

Eu não tenho o seu ambiente para testar isso, mas sugiro substituir "bash" por "bash.exe". O comando Windows cmd.exe requer o sufixo .exe para executar o comando bash.exe. O comando / usr / bin / bash da WSL não é o mesmo comando que o comando do Windows C: \ Windows \ System32 \ bash.exe.

    
por 29.10.2016 / 18:09