Por que a variável de ambiente não existe executando o comando bash com o Windows cmd?

3

Estou usando o WSL e sou bastante novo no Linux. Eu configurei uma variável de ambiente em / etc / environment chamado TESTVAR. Essa variável é necessária para alguns projetos e está funcionando bem executando diretamente o bash.

Mas se eu estiver executando um comando do Linux usando o cmd do Windows, como: bash.exe -c "printenv" , a variável não existe. Portanto, não posso executar meus comandos usando cmd, senão receberei muitos erros, porque a variável contém um caminho importante.

O que preciso fazer?

Obrigado.

    
por 0x1337 29.12.2017 / 00:39

3 respostas

2

Existem vários métodos para o bash no Windows

Veja o link

Basicamente você os adiciona a ~ / .bashrc

Se isso não estiver funcionando, poste seu .bashrc

Eu não sei porque o / etc / environment não está funcionando.

    
por Panther 29.12.2017 / 02:06
0

O WSL Bash funciona da mesma maneira que o Ubuntu Bash

EDIT: Resposta original abaixo para comentários históricos. A resposta da Pantera é melhor. Seu arquivo ~/.bashrc que é processado toda vez que o terminal é aberto. Coloque o comando:

MY_VARIABLE="some text"

Então você pode usar echo $MY_VARIABLE para ver a configuração.

Eu abri uma nova janela de terminal Bash no WSL, que funciona da mesma maneira no Ubuntu 16.04, exceto que a tela inicial é diferente:

Comovocêpodeverdepoisdedefinirumavariáveldeambiente,elapodeserrecuperadanormalmente.

Talvezoseumaiorproblemaestejanoseucomando:

bash.exe-c"printenv"

Em um dos meus atalhos da área de trabalho do Windows 10 eu uso:

C:\Windows\System32\bash.exe -c "cd && DISPLAY=0:0 /mnt/e/bin/lock-screen-timer"

Talvez você esteja perdendo alguma coisa aí ???

Responder aos comentários

Em resposta aos seus comentários para outra pessoa, meu sistema, como o seu, revela:

rick@alien:/mnt/c/Windows/System32$ echo $TERM,$NAME,$HOME
xterm-256color,alien,/home/rick

Então você não deve se preocupar excessivamente.

    
por WinEunuuchs2Unix 29.12.2017 / 02:44
0

Parece que se você quiser usar suas variáveis de ambiente Linux (Ubuntu), você precisa executar o seguinte comando:

bash --login -c "printenv"

Você pode ver algumas discussões relacionadas ao problema neste link

    
por Vladimir S. 31.08.2018 / 13:29