에서 변수를 설정할 때 .bashrc
이것을 사용해야합니까?
export VAR=value
아니면 이것으로 충분합니까?
VAR=value
차이점은 정확히 무엇입니까 (있는 경우)?
에서 변수를 설정할 때 .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
명령을 사용하여 ) 스크립트에 설정된 변수는 쉘 수명 동안 지속됩니다.
PS1
환경 변수로 내보낼 변수의 나쁜 예입니다. 쉘인 자식 프로세스에만 의미가 있으며 다른 쉘 (예 : bash 및 dash)에 의해 다르게 해석됩니다. 가장 좋은 방법은에서 변수를 일반 쉘 변수로 설정하는 것 .bashrc
입니다. 환경 변수의 더 나은 예는 HOME
, PATH
, EDITOR
등
둘 다 잘 작동하는 것 같지만 내보내기를 사용하면 변수를 서브 쉘과 다른 프로그램에서 사용할 수 있습니다. 이것을 테스트하려면 이것을 시도하십시오.
이 두 줄을 .bashrc 파일에 추가하십시오.
TESTVAR="no export"
export MYTESTVAR="with export"
그런 다음 새 쉘을여십시오.
실행 echo $TESTVAR
및 echo $MYTESTVAR
각 변수의 내용을 표시합니다. 이제 동일한 쉘 내에서 .bashrc 파일에서 두 줄을 제거 bash
하고 하위 쉘을 시작하십시오.
실행 echo $TESTVAR
빈 출력을해야하지만 실행 echo $MYTESTVAR
"내보내기"를 표시합니다