Linux에서 환경 변수가 아무것도 반환하지 않는 이유는 무엇입니까?

Linux에서 환경 변수가 아무것도 반환하지 않는 이유는 무엇입니까?

창에서 새 변수 = 값을 설정하려면 간단히 환경 변수에 추가하면 됩니다. 그러나 리눅스에서는 조금 어려워 보입니다. 이것은 내가 따랐던 절차입니다.

터미널을 열고 다음을 작성하세요.

vim ~/.bashrc  

그런 다음 키보드 "i"를 누르고 다음과 같이 변수를 정의하십시오.

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

그 다음에:wq

$echo 뒤에 변수가 표시됩니다.

echo $Test_MyVariable 

그리고 그것은 다음을 반환합니다:

테스스트

하지만 내 숭고한 텍스트에서는 None을 반환합니다.

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

없음

사용 가능한 모든 os.environ을 확인했지만 내 .environ을 찾을 수 없습니다 Test_MyVariable. 게다가, ~/.bash_profile및 변수를 추가해 보았지만 ~/.profile결과는 동일했습니다. 내가 뭘 잘못하고 있는지 말해 주시겠습니까?

답변1

에서 변수를 정의하면 해당 변수는 "소스화"(읽기)되는 ~/.bashrc즉시 표시됩니다 . ~/.bashrc이는 새 셸을 시작할 때만 발생합니다(예: 새 터미널을 열 때).

따라서 .bashrc파일에 새 줄을 추가하는 경우 새 터미널을 열고 그곳에서 Python 스크립트를 실행해야 합니다. 또는 실행하여 source ~/.bashrc현재 셸에 소스를 제공할 수 있습니다.

이제 숭고함을 언급했지만 그것이 왜 관련되는지 실제로 설명하지 않았으므로 어떻게든 숭고한 편집기 내에서 Python 스크립트를 실행하고 있다고 가정하겠습니다. 아마도 일종의 쉘 에뮬레이터가 있을 것입니다. 그렇다면 변수를 정의하는 방법과 위치에 대한 세부 사항은 sublime이 쉘을 설정하는 방법에 따라 달라집니다. 다음을 시도해 보세요:

  1. 숭고한 창을 닫았다가 다시 열어서 .bashrc.

  2. Sublime은 전혀 읽을 수 없었습니다 .bashrc. 일부 GUI 버튼에서 Sublime을 실행하는 경우 변수를 다시 읽기 전에 로그아웃했다가 다시 로그인해야 할 것입니다.

  3. 새 터미널을 열고 실행해 보세요 sublime(또는 명령줄에서 sublime을 시작하는 명령 이름이 무엇이든 상관없습니다). 그러면 변수가 보이나요?

관련 정보