@orumin echo $SHELLの結果は/bin/cshだしmanページを開くとcshの文字が見えますね
Conversation
Notices
-
rednose (rednose@fla.red)'s status on Monday, 30-Jul-2018 15:41:58 JST
rednose
-
rednose (rednose@fla.red)'s status on Monday, 30-Jul-2018 15:58:23 JST
rednose
@orumin 辛いので標準で置かれている.cshrcをなんとかせんかいのメールを情報センターに投げつける準備をしている(cshを変えろというのは無理筋っぽい気がするため
-
rednose (rednose@fla.red)'s status on Monday, 30-Jul-2018 16:05:17 JST
rednose
@orumin すると実は問題が起きるんですよ。.cshrcの末尾にexec /bin/bash -lとかすると、それ以前に存在しない環境変数を参照したことによって以降の.cshrc読み込みが行われなくなるためこれは実行できない。先頭に/bin/bash -lのみを書くのが良さそうに見えるが、これはbashのexitタイミングでcshに落ちてしまって存外使い勝手が悪い。じゃあ、先頭にexec /bin/bash -lすればいいやとなるんですが、この場合ssh越しにコマンドを実行するケース(たとえばscp)などを実行したときにコマンド実行がexec /bin/bash -lした向こう側に飛んでいかないため、永遠にプロンプトが帰ってこないという状態が起きる。
.cshrcに書くからssh等のコマンドが実行できないんだと考えると次は~/.loginの先頭に書きたくなるけれど、これは先述した問題で.cshrcの読み込みが死ぬとログインシェルでも以降の設定ファイル読み込みが行われない(つまり~/.loginが実行されない)ため意味をなさない -
rednose (rednose@fla.red)'s status on Monday, 30-Jul-2018 16:06:51 JST
rednose
@orumin ので、一番早い解決は存在しない環境変数を参照しに行くパートをコメントアウト等で無効化することなんですが、そもそもこれがアクセス元のホストタイプか何かを確認する参照変数らしくirixだのが書いてあって今どき存在しとるんかという気持ちになるし、大抵の場合設定されない項目なのでこれを無視するように標準設定を変えるのがあるべき姿というように思える
-
rednose (rednose@fla.red)'s status on Monday, 30-Jul-2018 16:13:38 JST
rednose
@orumin 確かにユーザー側の解決手段としてはそれが一つの手という気がするけど、システムとして全学的に出しているのであればバグの入ったrcファイルを放置するのはよろしくないと思いますね。というか正直sshrcなどの解決策は今はじめて知りました。
-
rednose (rednose@fla.red)'s status on Monday, 30-Jul-2018 16:22:04 JST
rednose
@orumin 知は力なりだ。私もそのように解決手段をシュッと思いつけるようになりたいが、経験ですかね。
-