부러워하다

env
부러워하다
운영 체제Unix, Unix 라이크, Inferno
플랫폼크로스 플랫폼
유형명령어
면허증.코어 유틸리티: GPLv3+

env 는 Unix 및 Unix 유사 운영체제용명령어입니다.현재 환경을 수정할 필요 없이 환경 변수 목록을 인쇄하거나 변경된 환경에서 다른 유틸리티를 실행하는 데 사용됩니다.사용.env변수를 추가하거나 삭제할 수 있으며 기존 변수는 새 값을 할당하여 변경할 수 있습니다.

실제로,env또 다른 일반적인 용도가 있습니다. 스크립트에서 올바른 인터프리터를 기동하기 위해 자주 사용됩니다.이 사용법에서는 일반적으로 환경은 변경되지 않습니다.

역사

의 버전env GNUcoreutils 번들은 Richard Mlynarik, David MacKenzie 및 Assaf [1]Gordon에 의해 작성되었습니다.4.4년에 처음 등장했습니다.BSD 및 POSIX.1의 일부입니다(와-i 옵션만)[2]

GNU의 환경은 신호와 현재 [1]디렉토리를 처리하도록 확장되었습니다.FreeBSDenv는 커스텀 검색 경로를 지원합니다.두 버전 모두 변수 설정을 위한 -u와 인수를 분할하기 위한 -S(주로 shebang)[2]있습니다.

현재 환경 변수 세트를 인쇄하려면:

부러워하다

새 셸에 대한 기존 환경 변수 없이 새 환경을 만들려면 다음 절차를 따릅니다.

env - i / bin / sh

X 응용 프로그램 xcalc실행하여 다른 디스플레이에 표시하려면(즉, 지정된 환경 변수가 새 값으로 대체되는지 여부를 수정한 환경에서) 다음을 수행합니다.

env DISPLAY = foo.bar:1.0 xcalc

대부분의 셸은 명령어 앞에 환경변수 설정을 지원하므로 env를 사용할 필요가 없습니다.

디스플레이=foo.bar:1.0 xcalc

env는 스크립트의 해시방 행에서 사용하여 PATH 경유로 인터프리터를 검색할 수도 있습니다.를 들어 Python 스크립트의 코드는 다음과 같습니다.

#!/usr/bin/env python3 print("안녕하세요, 월드!")

이 예에서는,/usr/bin/env의 풀 패스입니다.env명령어를 입력합니다.환경은 변경되지 않습니다.

를 사용하지 않고 인터프리터를 지정할 수 있습니다.env, 의 풀 패스를 지정함으로써python통역사.이 접근방식의 문제는 컴퓨터 시스템에 따라 정확한 경로가 다를 수 있다는 것입니다.대신 을 사용하여env예시와 같이 인터프리터는 스크립트 실행 시 검색되어 검색됩니다(정확히 말하면,env시스템이 에 콜을 발신합니까?execvp인터프리터를 찾아 기동합니다).이로 인해 스크립트는 보다 휴대성이 향상되지만 실행 가능한 검색 경로의 모든 디렉토리에서 일치하는 인터프리터가 검색되기 때문에 잘못된 인터프리터가 선택될 위험도 높아집니다.또, 같은 문제에 시달리고 있습니다.그것은, 에의 패스가env바이너리는 머신마다 다를 수도 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b env(1)Linux 사용자 매뉴얼– 사용자 명령어
  2. ^ a b env(1)FreeBSD 일반 명령어 매뉴얼

외부 링크