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


답변:


16

가장 좋은 방법

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


1
"스크립트 기간 동안 만 변수를 설정합니다 (이 경우에는 .bashrc)"이것은 거짓 / 오해의 소지가 있습니다. 이러한 방식으로 설정된 변수는 .bashrc를 읽는 대화식 쉘에 유지됩니다.
Ian Kelling

PS1환경 변수로 내보낼 변수의 나쁜 예입니다. 쉘인 자식 프로세스에만 의미가 있으며 다른 쉘 (예 : bash 및 dash)에 의해 다르게 해석됩니다. 가장 좋은 방법은에서 변수를 일반 쉘 변수로 설정하는 것 .bashrc입니다. 환경 변수의 더 나은 예는 HOME, PATH, EDITOR
안토니 문헌 [Geoghegan

10

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

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

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

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

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.