export
export는 유닉스와 유닉스 계열 운영체제에서 셸(command interpreter)이 환경 변수(environment variable)를 현재 셸과 그 하위 프로세스에 전달하도록 지정할 때 사용하는 내장(built‑in) 명령이다. 주로 Bourne 계열 셸(sh, bash, ksh, zsh 등)에서 제공되며, POSIX 표준에도 포함되어 있다.
개념 및 기능
- 환경 변수 설정:
export VAR=value형태로 변수에 값을 할당하고 동시에 그 변수를 환경 변수로 내보낸다. - 이미 정의된 변수 내보내기:
export VAR와 같이 변수명을만 지정하면, 해당 변수가 이미 존재할 경우 현재 셸의 환경 변수 목록에 추가한다. - 전체 내보내기:
export -p옵션을 사용하면 현재 셸에 내보내진 모든 환경 변수와 그 값이export VAR='value'형식으로 출력된다.
구문
export [ 옵션 ] [ 변수[=값] ... ]
주요 옵션
| 옵션 | 설명 |
|---|---|
-p |
현재 내보낸 변수들을 export 명령 형식으로 출력한다. |
-n |
지정한 변수를 환경 변수 목록에서 제거한다(내보내기 해제). |
-f |
함수 정의를 환경에 내보낸다(일부 셸에서 지원). |
주의:
export자체는 외부 프로그램이 아니며, 셸에 내장된 명령이므로 별도의 실행 파일이 존재하지 않는다.
사용 예시
# 변수 정의 및 내보내기
export PATH=$PATH:/usr/local/bin
# 기존 변수만 내보내기
export LANG
# 현재 내보낸 변수 확인
export -p
# 변수 내보내기 해제
export -n DEBUG
역사 및 표준
- 초기 구현:
export명령은 원래 AT&T Bell Labs에서 개발된 Bourne 셸(sh)에 포함되었으며, 1979년 버전 7 Unix에 처음 등장하였다. - POSIX: IEEE Std 1003.1(2008) 표준(일명 POSIX.1)에서
export는set명령의 기능 일부로 정의되지 않고, 독립적인 내장 명령으로 명시되고 있다. - 다른 셸:
csh계열에서는setenv명령이 동일한 역할을 수행한다.
관련 명령
unset– 변수 또는 함수 정의 제거env– 지정된 환경 변수로 새로운 프로세스를 실행set– 셸 변수와 옵션을 설정 (Bourne 계열에서export와는 구별됨)printenv– 현재 환경 변수를 출력
참고 문헌
- POSIX.1-2008 (IEEE Std 1003.1) – Shell Command Language
- 《The Unix Programming Environment》, Brian W. Kernighan, Rob Pike (1984)
- Bash Reference Manual – Builtin Commands
본 항목은 확인된 기술 문서와 POSIX 표준에 기반하여 작성되었으며, 추가적인 상세 내용은 각 셸의 공식 매뉴얼(
man bash,man ksh등)에서 확인할 수 있다.