[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:16048] Re: 環境変数の設定



>   私もxdmを使っていますし、たしかにbashを意図的にログインシェ
> ルでない対話シェルとして起動するというのはごく稀ですもんね。本
> 題からははずれますが、いつまでも同じ知識は通用せんといういい教
> 訓になりました。

逆でしょう。ログインシェルこそ、あまり使う必要がないのでは?

誤解があるかもしれないので、補足しておきます。

Xがない時代は、永井さんがおっしゃるように、

環境変数  -> ログインシェル用初期化ファイルで設定
aliasなど -> 一般対話シェル用初期化ファイルで設定

でよかったわけです。Xを使う場合でも、xinitで起動する分には、
~/.xinitrcがログインシェル用初期化ファイルを読まなくても(明
示的に読まなればもちろん読まない)、ログインシェルの環境変数
が受け継がれるのであまり問題はありません。

だけど、xdmを使う場合、ログインシェルを経由していないので、
~/.xsessionが実行されているときには環境変数が設定されていま
せん。~/.xsessionの中から起動されるxtermなどは、それこそ-ls
をつけておけば問題ありませんが、その他のクライアントでは困る
こともでてきます。Emacsとか。だから、~/.xsessionの最初の方で、
環境変数を設定しているファイルを明示的に読む必要があります。

ところが、ログインシェル用初期化ファイルは、ユーザと(readな
どを使って)真に対話することがあり、~/.xsessionに読み込むのは、
一般には問題があります。一方、一般対話シェル用初期化ファイル
は、普通はsourceしても問題がないように書かれています。という
ことで、環境変数も一般対話シェル用初期化ファイルの方に移って
きたのだと思います。

ちなみに、zshの場合、環境変数だけを設定する~/.zshenvというファ
イルがあり、このあたりがすっきりとしています。

-- 
川村 尚生