名前: Lykeion 日時: 2003-12-03 09:24:56 IPアドレス: 219.180.16.*
>>24087 TeX に直接関わる話ではありませんが、話の流れ上書き込みさせていただきま す。 RedHat8 や Fedora で、なぜ ja_JP.eucJP ロケールの terminal から LANG=C xterm & で、安宅さんの指摘にも関わらず、 xterm のロケールが C にならないのか? の点について、わかった点です。("LANG=C xterm &" コマンドを(a) とします。) 結論的に言うと、知らぬ間に LANG が設定されていました。次のとおりです。 0) bash では > 変数の代入を並べたもの (これは省略可能です) の後に...コマンドを指定 (bash man マニュアル「シェルの文法--単純なコマンド」) でき、この > 変数代入 (コマンド名の前にあるもの) またはリダイレクションと判断した > 単語は、保存されて後で処理され (bash man マニュアル「単純なコマンドの展開」) るとあります。すると、xterm 実行 ---> LANG=C 設定の順です。ここで xterm とういう Terminal の性質上 shell としてこの場合 bash が起動され ます。 1) 一般ユーザーを login shell の指定なしで追加した場合、自動的に bash が選択され、$HOME に .bash* ファイルが作成され、この中に起動時の設定ファ イル .bashrc 内には次の記述があります。 --------------------------- if [ -f /etc/bashrc ]; then . /etc/bashrc fi -------------------------- よって、この記述のままなら bash 起動時には /etc/bashrc が実行されます。 2) /etc/bashrc の最後のほうで login shell のチェックをして、login shell ではない場合 /etc/profile.d/*.sh ファイルが次々実行されます。 3) ところで、話を X 上で ja_JP.eucJP ロケールのターミナルから LANG=C xterm & を実行する場合、login shell ではないので 2) の処理に移 ります。 4) /etc/profile.d 内に lang.sh があり、これから /etc/sysconfig/i18n が . で評価されます。i18n 先頭行は LANG="ja_JP.eucJP" があり LANG が設定 されるというか、設定しなおされます。 結局、先の .bashrc の3行を評価しないようにすれば LANG は再設定されな いことになります。あるいは3行の後に、安宅さんご指摘の if [ "kterm" = $TERM ]; then LANG=ja_JP.eucJP export LANG fi のような形で求める LANG を再設定できます。上記 1) --- 4) は RedHat8, 9, および Fedora に共通です。7.x ではどうだったか、すでに HD 上にはな いので分かりません。 長々失礼しました。
この書き込みへの返事: