답변:
export
쉘에서 시작하는 다른 프로그램이 "보아야 할"변수 만 필요 하지만, 쉘 자체에서만 사용되는 변수는 export
ed 할 필요가 없습니다 .
다음은 매뉴얼 페이지의 내용입니다.
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"
. echo
echo는 쉘의 일부이므로 I를 사용 하면 값을 에코 할 수 있습니다.echo.sh
. 그것은 기본적으로 똑같이하는 작은 스크립트 ${MYVAR}
이지만 그냥 에코 하지만 차이점은 별도의 스크립트이기 때문에 다른 프로세스에서 실행된다는 것입니다.echo.sh
새로운 프로세스가 상속하지 않기 때문에 호출 하면 아무것도 출력하지 않습니다.${MYVAR}
${MYVAR}
사용하여 내 환경으로 내 보냅니다.export
echo.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"파일이 있습니까?를 참조하십시오 .