`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。最後のコマンドを保持します。

関連情報