シェルの初期設定ファイルでの別のシェルの起動
ログインシェルが /bin/csh でシェルの初期設定ファイル中で他のシェルに切り替えるということをしていた。
その際に、単に.cshrc に以下のように記述した結果問題が発生した*1。
# .cshrc exec other_shell
このように設定するとこの設定のしてあるホストへの scp 等ができなくなった。
原因は ssh で以下のようにリモートのコマンドを起動した場合にシェルの初期設定ファイルの時点で exec されてしまうため、command が実行されないことであった。
ssh remote_host command
そのため、インタラクティブシェルかどうかをみてから exec するようにした*2 。
#.cshrc if ($?prompt) then exec other_shell endif