ある端末ウィンドウで環境変数を作成し、別の端末ウィンドウに表示しようとしました。それは何も示していません。
$TEST=hello
その後、エクスポートしてecho
別の端末ウィンドウで再試行しました。結果は以前と同じです。
export TEST
ただし、ログイン中に同じコードを実行すると(コードを~/.profile
ファイルに追加)、すべてのターミナルウィンドウで変数を使用できます。ここで何が起こっているのでしょうか?端末でコードを実行するのとログインしてコードを実行することの違いは何ですか?
ベストアンサー1
export
子プロセス環境に変数を含めます。他の既存の環境には影響しません。一般的に言えば、ある端末で変数を設定し、別の端末に自動的に表示させる方法はなく、各プロセス自体に環境が設定されます。
.profile
ログインするたびに、この新しい変数を含めるように環境を設定するように環境に追加します。したがって、あるシェルから別のシェルにエクスポートするのではなく、初期環境を設定するときに新しいシェルにそれを含めるように指示します。