BASH에서 수출은 무엇을합니까? [복제] : bash에서“a = b”와“export a

가능한 중복 :
bash에서“a = b”와“export a = b”의 차이점

인정하기는 어렵지만 export환경 변수가 정확히 무엇을하는지는 결코 이해하지 못했습니다 . 변수를 내 보내지 않으면 때로는 자식 프로세스에서 볼 수 없지만 때로는 가능한 것처럼 보입니다. 내가 말할 때 정말 무슨 일이야

export foo=5

언제 변수를 내 보내지 않아야합니까?



답변

보낸 사람 man bash:

환경

프로그램이 호출되면 환경이라는 문자열 배열이 제공됩니다. 이름 = 값 형식의 이름-값 쌍 목록입니다.

쉘은 환경을 조작하는 몇 가지 방법을 제공합니다. 호출시, 쉘은 자체 환경을 스캔하고 발견 된 각 이름에 대한 매개 변수를 작성하여 자동으로 하위 프로세스로 내보내기 위해 표시합니다. 실행 된 명령은 환경을 상속합니다. export
declare -x 명령은 매개 변수와 기능에 추가 된 환경에서 삭제 될 수 있습니다. 환경의 매개 변수 값이 수정되면 새 값이 환경의 일부가되어 이전 값을 대체합니다. 실행 된 명령으로 상속 된 환경은 셸의 초기 환경으로 구성되며, 셸에서 값을 수정할 수 있고 unset 명령으로 제거 된 쌍이 적을 수 있으며 내보내기 및 declare -x명령을 통한 추가도 가능
합니다.


답변

내 보낸 변수는 자식 프로세스로 전달되지만 내 보내지 않은 변수는 전달되지 않습니다.


답변

을 사용 export하면 내보내기 명령이 호출 된 쉘의 환경 변수 목록에 변수를 추가하고 쉘의 모든 환경 변수가 하위 프로세스에 전달되므로이를 사용할 수 있습니다.

쉘을 완료하면 환경이 파괴되므로 로그인 할 때 환경 변수가 .bashrc 파일에서 선언되고 내보내지는 이유는 다음과 같습니다.