env
| env | |
|---|---|
| Operating system | Unix, Unix-like, Inferno |
| Platform | Cross-platform |
| Type | Command |
| License | coreutils: GPLv3+ |
env는 유닉스와 유닉스-계열 운영 시스템에 대해 쉘 명령입니다. 그것은 현재 존재하는 환경을 수정해야 할 필요없이 변경된 환경에서 환경 변수 목록을 인쇄하거나 또 다른 유틸리티를 실행하기 위해 사용됩니다. env를 사용하여, 변수는 더해지거나 제거될 수 있고, 기존 변수는 그것들에 새 값을 할당함으로써 변경될 수 있습니다.
실제로, env는 또 다른 공통적인 용도가 있습니다. 그것은 종종 쉘 스크립트에서 올바른 인터프리터를 시작하기 위해 사용됩니다. 이 사용법에서, 환경은 전형적으로 변경되지 않습니다.
History
GNU coreutils에 번들된 env 버전은 Richard Mlynarik, David MacKenzie, 및 Assaf Gordon에 의해 작성되었습니다.[1] 그것은 4.4BSD에 처음 등장했고, POSIX.1의 일부입니다 (오직 -i 옵션과 함께 사용합니다).[2]
GNU의 env는 신호와 현재 디렉토리를 처리하도록 확장되었습니다.[1] FreeBSD의 env은 사용자-정의 검색 경로를 지원합니다. 두 버전 모두에서 발견되는 확장은 변수 설정 해제를 위한 -u와 인수 분할을 위한 -S를 포함합니다 (주로 shebang에서).[2]
Examples
현재 환경 변수 집합을 인쇄하려면:
env
새로운 쉘에 대한 임의의 기존 환경 변수없이 새로운 환경을 만들려면:
env -i /bin/sh
X 응용 프로그램 xcalc을 실행하고 다른 디스플레이에 나타나게 하려면 (즉, 지정된 환경 변수가 새로운 값으로 대체되는지 여부에 관계없이 수정된 환경과 함께):
env DISPLAY=foo.bar:1.0 xcalc
대부분의 쉘이 명령 앞에 환경 변수 설정을 지원하기 때문에 이러한 env의 사용은 종종 불필요함을 주목하십시오:
DISPLAY=foo.bar:1.0 xcalc
env는 인터프리터에게 PATH를 통해 조회될 수 있도록 허용하기 위해 스크립트의 hashbang 줄에 사용될 수도 있습니다. 예를 들어, 다음은 Python 스크립트의 코드입니다:
#!/usr/bin/env python3
print("Hello, World!")
이 예제에서, /usr/bin/env는 env 명령의 전체 경로입니다. 그 환경은 변경되지 않습니다.
python 인터프리터의 전체 경로를 제공함으로써, env 사용없이 인터프리터를 지정할 수 있음을 주목하십시오. 해당 접근 방식을 갖는 문제는 다른 컴퓨터 시스템에서, 정확한 경로가 다를 수 있다는 것입니다. 예제와 같이 env를 대신 사용함으로써, 인터프리터가 스크립트가 실행되는 시간에서 검색되고 위치가 지정됩니다 (더 정확하게는, env는 execvp에 대한 시스템 호출을 수행하며, execvp는 인터프리터를 위치시키는 작업을 하고 그것을 시작합니다). 이것은 스크립트를 더 쉽게 이식가능하게 만들지만, 실행-가능한 검색 경로의 모든 각 디렉터리에서 일치에 대해 검색하기 때문에 잘못된 인터프리터가 선택될 위험도 높아집니다. 그것은 역시 env 바이너리에 대한 경로가 역시 머신별 기초위에 다를 수 있다는 점에서 같은 문제를 겪습니다.
See also
References
External links
- : set the environment for command invocation – Commands & Utilities Reference, The Single UNIX Specification, Issue 7 from The Open Group
- – Inferno General commands Manual
- env—manual page from GNU coreutils.
- : run a program in a modified environment – OpenBSD General Commands Manual
- : set and print environment – NetBSD General Commands Manual