- - PR -
ロケールがSJISのときログインシェルがcshだと正常にログインできない
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-10-01 17:31
いつもお世話になっております。
CentOS5を使っています。 もともとロケールをUTF8にしていたのをSJISに変えて、 ログインシェルがcshのユーザでログインしようとすると、UTF8では正常にログインできるのに、SJISだと正常にログインできません。 ~user1/.cshrcを正常に読み込めていなくて、su - コマンド実行すると ~: イベントが見つかりません. というエラーがでます。 わからないのはなぜログインシェルがcshで、かつロケールがSJISのときのみエラーがでるのか、どうすればエラーがなくなるのか、です。 ロケールSJISでもログインシェルbashのユーザでは正常にログインできますし、 ログインシェルcshのユーザでもロケールUTF8だと正常にログインできます。 OKWAVEでも同様の質問をしたところ、 「!~」演算子がロケールSJISの時のみ、ヒストリ展開になっているようなので、 違う書き方をすればいいのでは、という助言をいただきました。 そこで、 ログインシェルcshのログイン時に読み込まれるファイルで!~演算子を 使用している3ファイルの!~部分を書き換えました。 /etc/profile.d/krb5-workstation.csh /etc/csh.login /etc/profile.d/krb5-devel.csh すると、~user1/.cshrcの途中まで読み込まれるようになりました。 ~: イベントが見つかりません.のエラーは変わらずです。 途中まで、というのは ~user1/.cshrcにプロンプト指定のあとに環境変数設定を書いているのですが、 そのプロンプトは適用されるようになったのです。 環境変数設定はされていません。 長くなりましたが どうかご教授のほどよろしくお願い致します。 |
|
投稿日時: 2008-10-03 18:24
CentOS5ではSJISがロケールのとき、チルダはご認識されるようです。
iconvでUTF8に変換したら、・~となりました。 ログインシェルがcshのユーザで正常にログインするために、 .cshrcの中で!~演算子を使っているファイルを読むとき env LANG=C ファイルを読む部分〜 で解決するということを教えていただいたので ご報告しておきます。 |
1