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

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

export VAR=value

아니면 이것으로 충분합니까?

VAR=value

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



답변

가장 좋은 방법

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명령을 사용하여 ) 스크립트에 설정된 변수는 쉘 수명 동안 지속됩니다.


답변

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

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

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

그런 다음 새 쉘을여십시오.

실행 echo $TESTVARecho $MYTESTVAR각 변수의 내용을 표시합니다. 이제 동일한 쉘 내에서 .bashrc 파일에서 두 줄을 제거 bash하고 하위 쉘을 시작하십시오.

실행 echo $TESTVAR빈 출력을해야하지만 실행 echo $MYTESTVAR“내보내기”를 표시합니다


답변