bash에서 환경 변수를 설정할 때 export
이 작업을 수행 해야 합니다. 그래서 우리는 그것을 미래에 사용할 수 있습니다. (적어도 연속 세션에서는). 나는 이것을 이해합니다.
내 질문은 export
이 명령이 변수에 정확히 어떤 역할을 하는가입니다.
그것을 사용할 어딘가에 임시 파일을 생성합니까, 아니면 변수를 보유하기 위해 일부 파일을 수정합니까? 이것은 매우 혼란스럽습니다.
따라서 기본적으로 셸에서 작업할 때 모든 명령과 기타 사항을 처리하는 환경이 지원되며 모든 변수는 그 일부입니다. 셸에서 새로 생성된 변수를 내보내면 해당 변수가 환경에도 추가됩니다. 이 프로세스 중에는 파일이 수정되지 않으며 새 변수가 어디에도 저장되지 않습니다.
답변1
아니요. 동일한 쉘 세션에서 사용하기 위해 쉘 변수를 내보낼 필요가 없습니다. 새 셸에서와 같이 하위 프로세스에 필요할 때 변수를 내보낼 수 있거나 현재 셸에서 실행되는 일부 도구에서 필요할 때 변수를 내보낼 수 있습니다.
쉘 변수를 내보내 환경 변수로 만듭니다. 환경 변수는 환경의 일부입니다. 환경의 일부이기도 한 다른 것에는 현재 작업 디렉토리와 현재 프로세스의 "niceness" 값, 기타 잡동사니가 포함됩니다.
새 프로세스가 시작되면 환경이 상속되어 복사됩니다. 따라서 새 프로세스는 자신을 시작한 셸에서 모든 환경 변수의 복사본을 가져오지만 셸 변수(내보내지 않은 변수)의 복사본은 가져오지 않습니다.
여기에는 임시 파일이 포함되지 않으며 단지 메모리에 있는 데이터의 복사본만 포함됩니다. 새로운 프로세스가 시작되면 커널에 의해 복사가 수행됩니다.