Jump to content

env

This is a fully translated article. Click here for more information.
From DawoumWiki, the free Mathematics self-learning

env
Operating systemUnix, Unix-like, Inferno
PlatformCross-platform
TypeCommand
Licensecoreutils: GPLv3+

env유닉스유닉스-계열 운영 시스템에 대해 명령입니다. 그것은 현재 존재하는 환경을 수정해야 할 필요없이 변경된 환경에서 환경 변수 목록을 인쇄하거나 또 다른 유틸리티를 실행하기 위해 사용됩니다. env를 사용하여, 변수는 더해지거나 제거될 수 있고, 기존 변수는 그것들에 새 값을 할당함으로써 변경될 수 있습니다.

실제로, env는 또 다른 공통적인 용도가 있습니다. 그것은 종종 쉘 스크립트에서 올바른 인터프리터를 시작하기 위해 사용됩니다. 이 사용법에서, 환경은 전형적으로 변경되지 않습니다.

History

GNU coreutils에 번들된 env 버전은 Richard Mlynarik, David MacKenzie, 및 Assaf Gordon에 의해 작성되었습니다.[1] 그것은 4.4BSD에 처음 등장했고, POSIX.1의 일부입니다 (오직 -i 옵션과 함께 사용합니다).[2]

GNU의 env는 신호와 현재 디렉토리를 처리하도록 확장되었습니다.[1] FreeBSDenv은 사용자-정의 검색 경로를 지원합니다. 두 버전 모두에서 발견되는 확장은 변수 설정 해제를 위한 -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/envenv 명령의 전체 경로입니다. 그 환경은 변경되지 않습니다.

python 인터프리터의 전체 경로를 제공함으로써, env 사용없이 인터프리터를 지정할 수 있음을 주목하십시오. 해당 접근 방식을 갖는 문제는 다른 컴퓨터 시스템에서, 정확한 경로가 다를 수 있다는 것입니다. 예제와 같이 env를 대신 사용함으로써, 인터프리터가 스크립트가 실행되는 시간에서 검색되고 위치가 지정됩니다 (더 정확하게는, envexecvp에 대한 시스템 호출을 수행하며, execvp는 인터프리터를 위치시키는 작업을 하고 그것을 시작합니다). 이것은 스크립트를 더 쉽게 이식가능하게 만들지만, 실행-가능한 검색 경로의 모든 각 디렉터리에서 일치에 대해 검색하기 때문에 잘못된 인터프리터가 선택될 위험도 높아집니다. 그것은 역시 env 바이너리에 대한 경로가 역시 머신별 기초위에 다를 수 있다는 점에서 같은 문제를 겪습니다.

See also

References

  1. ^ a b env(1) – Linux User's Manual – User Commands
  2. ^ a b env(1) – FreeBSD General Commands Manual