tcshでは、環境変数はいつ設定されますか?

tcshでは、環境変数はいつ設定されますか?

私はコマンドを使用して.tcshrcファイルに多くの環境変数を設定しましたsetenv
今日、これらのいずれかをオフにする必要があるときに、.tcshrcで設定した環境変数が環境に存在しないことを予想しながら、このファイルを移動して新しい端末(すべてGnomeグラフィック環境内)を開きました。
しかし、これらの変数のいくつかはまだ固定されています。他の場所で設定できますか?私の.loginファイルが空であることを知っています。

setenvコマンドは思ったよりグローバルなのですか? alt-ctrl-F2 で新しい仮想端末を開くと、変数は設定されなくなります。

ベストアンサー1

これは、通常のシェルではなくセッションとログインシェルに関連しています。

新しいセッションを開始すると(仮想端末を介してログインするか、新しいデスクトップセッションを開始したときに発生します)、ログインプロセスはデフォルト環境を作成し、それをログインシェルと呼び、起動を実行しtcshます。グローバルスタートアップファイル(例/etc/csh.cshrc.tcshrc

したがって、この場合、すべての変更が確実に表示されます。

「一般」シェル(デスクトップ環境またはtcsh既存のシェルで実行)を起動すると、環境はクリーンアップされず、グローバルファイルは処理されません(ただしローカル構成ファイルは処理されます)。

環境がクリーンアップされていないため、新しい汎用シェルは親(デスクトップシステムプロセスの1つ)から環境を継承します。プロセスは以前のバージョンの構成ファイルを読み取ったため、まだ古い環境変数が設定されています。

デスクトップセッションからログアウトしてから再度ログインすると、変更が適用されることがわかります。

tcshどのファイルがいつ処理されるかについては、マニュアルページを参照してください。

おすすめ記事