env 변수가 설정된 위치 찾기

env 변수가 설정된 위치 찾기

http_proxy새 터미널을 시작할 때마다 my가 잘못 설정되는 문제가 있습니다 .

» echo $http_proxy 
http://http://127.0.0.1:1234/

그건 ... 나쁘다. 내 환경 설정 어딘가에 버그가 있습니다. 그것을 찾아보자. 이를 위해 의 시작 부분에 변수 값을 표시하겠습니다 .bashrc. 나는새로운터미널에 잘못된 값이 이미 표시되어 있습니다.

http_proxy=http://http://127.0.0.1:1234/
» 

좋습니다. 다음 중 하나가 참이어야 합니다.

  1. 데스크톱 프로세스(터미널을 시작하는 프로세스)가 이미 잘못된 값을 내보내고 있습니다.
  2. 값은 다음에 의해 설정됩니다.bash ~ 전에 .bashrc파싱됨

현재 셸의 상위 프로세스 환경을 확인해 보겠습니다.

» pstree -ahp myuser
...
  ├─gnome-terminal-,3807
  │   ├─bash,3814
  │   │   └─pstree,17329 -ahp myuser

상위 프로세스의 환경을 확인해 보겠습니다 gnome-terminal.

» cat /proc/3807/environ | tr \\0 \\n | grep -i http_proxy

아무것도 아니야, 질치, 나다!

는 어때 bash?

» cat /proc/3814/environ | tr \\0 \\n | grep -i http_proxy
HTTP_PROXY=http://http://127.0.0.1:1234/
http_proxy=http://http://127.0.0.1:1234/

예상대로 거기에 있습니다(이것은 echo $http_proxy물론 을 수행하거나 을 수행하는 것과 동일합니다 cat /proc/self/environ).

따라서 에는 없지만 gnome-terminal에 있습니다 bash. 로딩하는 동안 다른 곳에 설정해야 합니다 bash.~ 전에 .bashrc. 나도 확인을 시도했지만 .profile운이 좋지 않았습니다.

이전에 무슨 일이 일어날 수 있었나요 .bashrc? 다른 디버깅 아이디어에는 어떤 것이 있나요?

관련 정보