`env`는 현재 쉘의 환경을 인쇄하지 않고 `env`에 수신된 환경을 인쇄합니까?

`env`는 현재 쉘의 환경을 인쇄하지 않고 `env`에 수신된 환경을 인쇄합니까?

coreutils 매뉴얼에는 env명령 에 대해 나와 있습니다.

env [option]... [name=value]... [command [args]...]

환경 지정 후에 명령 이름을 지정하지 않으면 결과 환경이 인쇄됩니다. 이는 printenv 프로그램을 지정하는 것과 같습니다.

값이 ? 에 따라 달라진다 는 점에서 인쇄 환경에 env따라 다릅니다 . 예를 들어,env_env

$ env | grep '^_'
_=/usr/bin/env

env환경 변수의 값이 _특정 값으로 수정되는 경우를 제외하고 현재 쉘의 내보낸 거의 모든 환경을 인쇄 합니다 env.

그러면 env현재 쉘의 환경을 출력하지만 내부적으로 수신된 환경을 출력 합니까 env?

감사해요.

답변1

env는 대부분의 쉘에서 별도의 프로그램이므로 쉘에서 받은 환경을 인쇄합니다.

Bourne Shell은 쉘 변수를 기반으로 하는 환경 관리 시스템을 사용합니다.

시작 시 환경을 쉘 변수 목록으로 가져옵니다.

쉘 변수를 생성하거나 수정해도 쉘이 새 프로그램에 대해 설정하는 환경은 수정되지 않습니다.

  • 전화 set인쇄내부 쉘 변수set쉘에 내장된 것처럼

  • 전화 env인쇄수출환경env외부 명령과 동일

쉘 변수 _ksh88. 마지막 명령을 유지합니다.

관련 정보