私は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
。
最初にスペースを使用しない場合は、この問題を「修正」できます。