이러한 기본 환경 변수는 언제 어떻게 생성되고 내보내지나요?

이러한 기본 환경 변수는 언제 어떻게 생성되고 내보내지나요?

다음은 시작 파일을 실행하지 않고 bash 셸의 기본 환경 변수를 보여줍니까?

$ env -i bash --noprofile --norc
$ export
declare -x OLDPWD
declare -x PWD="/home/t"
declare -x SHLVL="1"

(이렇게 하면 set환경 변수일 수도 있고 아닐 수도 있는 기본 셸 변수의 더 긴 목록이 제공됩니다.)

이 세 가지 환경 변수는 언제 어떻게 생성되고 내보내지나요?

bash 자체 또는 bash를 시작할 때 제외하지 않은 암시적 시작 파일을 만든 사람은 누구입니까?

내 질문은 다음에서 영감을 얻었습니다.기본 환경 변수는 무엇입니까?

감사해요.

답변1

오픈 소스 프로그램이 무엇을 하는지 궁금할 때 나는 소스 코드(문서와 실험은 물론)를 살펴봅니다. set_auto_export (검색 결과에 따르면 정말 좋은 목록을 찾은 것 같습니다.bash 변수.c 소스 코드

이것들은 안에 있습니다 initialize_shell_variables().다음에서 전화 걸기 shell_initialize()shell.c에서 그 자체는 다음과 같습니다.다음에서 전화 걸기 main()shell.c에서

당신은 심지어 찾을 수 있습니다증거어느 시점에 수출용으로 표시되었지만 $PATH지금은 종료되었습니다.$TERMifdef'd

관련 정보