환경 의 복사본 이 하위 셸로 전파되므로 다음과 같이 작동합니다.
$ export MY_VAR=200
$ bash
$ echo $MY_VAR
200
그러나 사본이기 때문에 최소한 환경을 변경하는 것이 아니라 부모 쉘까지 그 값을 얻을 수 없습니다.
실제로 한 걸음 더 나아가고 자하는 것처럼 들리는데, 이는 Gnome Terminal의 새 탭처럼 부모와 별도로 시작된 "형제"쉘이 공유하는 전역 변수처럼 작동하는 것을 만드는 것입니다.
대부분의 대답은 "환경 변수가 그렇게 작동하지 않기 때문에 할 수 없습니다"입니다. 그러나 또 다른 대답이 있습니다. 즉, 항상 무언가를 해킹 할 수 있습니다. 한 가지 방법은 변수 값을 파일에 쓰는 ~/.myvar
다음에 포함하는 것입니다 ~/.bashrc
. 그런 다음 각 새 쉘은 해당 파일에서 읽은 값으로 시작 합니다.
한 단계 더 나아갈 수 ~/.myvar
있습니다. 형식으로 MYVAR=200
설정 한 다음 설정 PROMPT_COMMAND=source ~/.myvar
하면 새 프롬프트가 표시 될 때마다 값을 다시 읽게됩니다. 아직 아닙니다 확실히 공유 전역 변수,하지만처럼 행동하기 시작하고있다. 그러나 프롬프트가 다시 나타날 때까지 활성화되지 않습니다. 수행하려는 작업에 따라 심각한 제한이있을 수 있습니다.
물론 다음으로 변경 사항을 자동으로 작성하는 것입니다 ~/.myvar
. 실제로는 환경 변수가 쉘 간 통신 메커니즘이 아니기 때문에 다른 방법을 찾는 것이 더 낫기 때문에이 시점에서 조금 더 복잡해집니다.