Por que a variável ambiental não retorna nenhum no Linux?

Por que a variável ambiental não retorna nenhum no Linux?

No Windows, para definir uma nova variável = valor, podemos simplesmente adicioná-la à variável ambiental. No entanto, no Linux, parece um pouco difícil. este é o procedimento que segui:

Abra o Terminal e escreva:

vim ~/.bashrc  

em seguida pressione o teclado "i" e defina a variável da seguinte forma:

Test_MyVariable='Tessst'
export Test_MyVariable
PATH=$PATH:Test_MyVariable/bin

então:wq

depois de $echo vejo a variável:

echo $Test_MyVariable 

e retorna:

Tessst

mas no meu texto sublime ele retorna Nenhum.

import os
new_v= os.environ.get('Test_MyVariable')
print(new_v)

Nenhum

Até verifiquei todos os os.environ disponíveis, mas não consigo encontrar meu arquivo Test_MyVariable. Além disso, também tentei com ~/.bash_profilee ~/.profilee adicionei variáveis ​​a eles, mas o mesmo resultado. Poderia me dizer o que estou fazendo de errado?

Responder1

Quando você define uma variável em ~/.bashrc, essa variável estará presente assim que ~/.bashrcfor "originada" (lida). Isso só acontece quando você inicia um novo shell (por exemplo, quando você abre um novo terminal).

Portanto, se você adicionar a nova linha ao seu .bashrcarquivo, precisará abrir um novo terminal e executar seu script python lá. Alternativamente, você pode executar source ~/.bashrcpara colocá-lo no shell atual.

Agora, você menciona sublime, mas não explica por que isso é relevante, então presumo que você esteja executando seu script python dentro do editor sublime de alguma forma. Presumivelmente, ele possui algum tipo de emulador de shell. Se for esse o caso, então os detalhes de como e onde definir a variável dependerão de como o sublime configura seu shell. Experimente o seguinte:

  1. Basta fechar a janela do sublime e abri-la novamente e ver se ele releu o seu arquivo .bashrc.

  2. Sublime poderia muito bem nem ler .bashrc. Se você estiver executando o sublime a partir de algum botão da GUI, provavelmente precisará sair e fazer login novamente antes de conseguir reler as variáveis.

  3. Tente abrir um novo terminal e executar sublime(ou qualquer que seja o nome do comando para iniciar o sublime na linha de comando). Ele vê a variável então?

informação relacionada