xterm は .cshrc を 2 回呼び出します。

xterm は .cshrc を 2 回呼び出します。

私はUbuntu 18.04を実行していてaskubuntuにこの質問をしましたが、答えを受け取らなかったので、別のフォーラムに質問し、他の読者がいることを願っています。 Ubuntu 16.04でも同じ問題が発生することがわかります。この問題を解決する方法を知りたいです。あるいは、少なくともこれが他のバージョンのLinuxでより一般的に発生するかどうかを知りたいです。

次のコマンド

xterm -e ' tcsh'

私の.cshrcファイルを2回呼び出します。ただし、このコマンドは一度だけ呼び出します。

xterm -e 'tcsh'

同じもの

xterm -e 'cd `pwd`;tcsh'

明らかに、最初の呼び出しと残りの2つの呼び出しの唯一の違いはスペースです。なぜ一つの空間がこのように大きな違いを生み出すのでしょうか?

これをテストするために.cshrcのMWEバージョンを使用しました。

#/bin/tcsh
echo called from cshrc

でも同じ問題が発生します。

xterm -e " csh"

この問題を解決する方法の提案をありがとうございます!

ベストアンサー1

推測:先行スペースは呼び出すコマンドがないことを意味するので、xtermこれをシェルスクリプトとして解釈し、.cshrc引数を使用して標準シェルを呼び出し(明確に読み取る)、呼び出して再tcsh読み込みtcshします.cshrc

を使用して、これが実際に起こっていることを確認できますstrace

最初にスペースを使用しない場合は、この問題を「修正」できます。

おすすめ記事