답변:
export쉘에서 시작하는 다른 프로그램이 "보아야 할"변수 만 필요 하지만, 쉘 자체에서만 사용되는 변수는 exported 할 필요가 없습니다 .
다음은 매뉴얼 페이지의 내용입니다.
The supplied names are marked for automatic export to the environ‐
ment of subsequently executed commands. If the -f option is given,
the names refer to functions. If no names are given, or if the -p
option is supplied, a list of all names that are exported in this
shell is printed. The -n option causes the export property to be
removed from each name. If a variable name is followed by =word,
the value of the variable is set to word. export returns an exit
status of 0 unless an invalid option is encountered, one of the
names is not a valid shell variable name, or -f is supplied with a
name that is not a function.
이것은 다음을 통해 입증 될 수 있습니다.
$ MYVAR="value"
$ echo ${MYVAR}
value
$ echo 'echo ${MYVAR}' > echo.sh
$ chmod +x echo.sh
$ ./echo.sh
$ export MYVAR="value-exported"
$ ./echo.sh
value-exported
설명:
${MYVAR}와 함께 Shell 변수로 설정 했습니다 MYVAR="value". echoecho는 쉘의 일부이므로 I를 사용 하면 값을 에코 할 수 있습니다.echo.sh. 그것은 기본적으로 똑같이하는 작은 스크립트 ${MYVAR}이지만 그냥 에코 하지만 차이점은 별도의 스크립트이기 때문에 다른 프로세스에서 실행된다는 것입니다.echo.sh새로운 프로세스가 상속하지 않기 때문에 호출 하면 아무것도 출력하지 않습니다.${MYVAR}${MYVAR}사용하여 내 환경으로 내 보냅니다.exportecho.sh다시 동일 하게 실행 ${MYVAR}하면 환경에서 가져 오기 때문에 내용을 에코 합니다.따라서 귀하의 질문에 대답하십시오 :
내 보내야하는지 여부에 관계없이 변수가 사용될 위치에 따라 다릅니다.
사용 export을위한 환경 변수 . 환경 변수는 운영 체제 기능입니다. 환경 변수는 자식 프로세스에 의해 상속됩니다. 셸에서 설정하면이 셸에서 시작한 모든 프로그램에서 변수를 사용할 수 있습니다. 많은 응용 프로그램이나 쉘 이외의 특정 응용 프로그램에서 사용하는 변수는 환경 변수입니다. 다음은 일반적인 환경 변수의 몇 가지 예입니다.
HOME— 사용자 별 구성 파일이있는 사용자의 홈 디렉토리를 나타냅니다. 사용자 별 구성 파일을 읽거나 사용자의 홈 디렉토리 위치를 알아야하는 프로그램에서 사용합니다.PATH— 다른 프로그램을 시작하기 위해 실행 파일을 찾을 위치를 나타냅니다. 다른 프로그램을 시작해야하는 모든 프로그램에서 사용합니다.LD_LIBRARY_PATH— 동적 라이브러리 파일을 찾을 위치를 나타냅니다. 동적으로 연결된 모든 실행 파일에서 사용됩니다.EDITOR, VISUAL— 편집기가 필요할 때 실행할 프로그램을 나타냅니다. 텍스트 편집기를 시작해야하는 모든 프로그램에서 사용합니다.DISPLAY, XAUTHORITY— X11 서버에 연결하는 방법을 나타냅니다. X11 클라이언트 (예 : GUI 프로그램)에서 사용합니다.LESS— 옵션 less이 실행될 때 자동으로 켜집니다 . 에 의해 사용됩니다 less.http_proxy— 사용할 웹 프록시를 나타냅니다. 대부분의 웹 브라우저에서 사용됩니다.export쉘 변수 에는 사용하지 마십시오 . 쉘 변수는 프로그래밍 언어 인 쉘의 기능입니다. 쉘 변수는 설정된 쉘 내부에서만 사용됩니다. 쉘에 의해 시작된 프로그램에는 아무런 의미가 없습니다. 쉘 변수는 다른 쉘 상태와 같이 서브 쉘이 작성 될 때 복제됩니다. 다음은 널리 사용되는 쉘에 의미가있는 쉘 변수의 몇 가지 예입니다.
PS1 — 각 명령 전에 표시 할 프롬프트.IFS — 따옴표없는 변수 확장 및 명령 대체에서 단어를 구분하는 문자입니다.HISTFILE — 셸이 명령 기록을 쓰는 파일입니다.쉘에서 사용하는 변수 외에도 대부분의 쉘 스크립트는 내부 목적으로 변수를 사용합니다.
대부분의 환경 변수 (예 PATH:)는 전체 세션에 적합하며 ~/.profile유사한 파일에 설정해야 합니다. 단지 특정 쉘 (예를 들면 이해가 변수 PS1)와 같은 쉘 특정 파일에 설정해야 ~/.bashrc하거나 ~/.zshrc. 모든 쉘에서 읽은 ".bashrc"파일이 있습니까?를 참조하십시오 .