it-swarm-ko.tech

.bashrc에서 환경 변수를 설정하는 가장 좋은 방법은 무엇입니까?

.bashrc에서 변수를 설정할 때 이것을 사용해야합니까?

export VAR=value

아니면 이것으로 충분할까요?

VAR=value

차이점은 정확히 무엇입니까 (있는 경우)?

11
Flávio Amieiro

가장 좋은 방법

export VAR=value

차이점

하기

VAR=value

스크립트 기간 동안 만 변수를 설정합니다 (이 경우 .bashrc). 스크립트의 하위 프로세스 (있는 경우)에는 VAR이 정의되어 있지 않으며 스크립트가 종료되면 VAR이 사라집니다.

export VAR=value

자식 프로세스에 전달되는 변수 목록에 VAR을 명시 적으로 추가합니다. 시도해 보시겠습니까? 셸을 열고

PS1="foo > "
bash --norc

새 셸은 기본 프롬프트를 가져옵니다. 대신에 다음과 같은 작업을 수행하면

export PS1="foo > "
bash --norc

새로운 쉘은 방금 설정 한 프롬프트를 가져옵니다.

업데이트 : Ian Kelling이 .bashrc에 설정된 변수 아래에 설명 된대로 .bashrc를 제공 한 셸에서 유지됩니다. 보다 일반적으로 셸이 스크립트 (source scriptname 명령을 사용하여)를 소싱 할 때마다 스크립트에 설정된 변수가 셸의 수명 동안 지속됩니다.

16
agnul

둘 다 잘 작동하는 것 같지만 내보내기를 사용하면 변수를 서브 쉘 및 기타 프로그램에서 사용할 수 있습니다. 이것을 테스트하려면 이것을 시도하십시오.

이 두 줄을 .bashrc 파일에 추가하십시오.

TESTVAR="no export"
export MYTESTVAR="with export"

그런 다음 새 셸을 엽니 다.

echo $TESTVARecho $MYTESTVAR를 실행하면 각 변수의 내용이 표시됩니다. 이제 동일한 셸 내부에서 .bashrc 파일에서이 두 줄을 제거하고 bash을 실행하여 서브 셸을 시작합니다.

echo $TESTVAR를 실행하면 빈 출력이 표시되지만 echo $MYTESTVAR를 실행하면 "with export"가 표시됩니다.

10
Mike H