web-dev-qa-db-ja.com

.xsessionrcからスクリプトファイルを入手できないのはなぜですか?

DebianLinuxでLXDE/Openboxを実行しています。ログイン時に私はしたい:

  • ユーザー固有のディレクトリを$ PATH変数に追加します(A)
  • いくつかの(非グラフィカル)コマンドを実行します(例:ディレクトリのマウント)(B)

セットアップは、グラフィカルログインとログインシェル(SSHなど)で機能するはずです。特に$ PATH変数の拡張に関する部分は注意が必要なようです...

私の理想的な解決策は、すべてのコマンド(AとB)を別々のスクリプトファイル(F)に入れ、.xsessionrc(セッションマネージャーを介したグラフィカルログインの場合)と.profile(ログインシェルの場合)からソースを取得することです。 .profileからのFのソーシングはうまく機能しますが、.xsessionrcからのソーシングは失敗するようです。

そこで、新しい$ PATHを.xsessionrc(および.profile)に直接設定し、.xsessionrcおよび.profileからF(現在はコマンドBのみを含む)を実行する回避策を作成しました。これは正常に機能しますが、.xessionrc.profileでコマンド(A)が重複しているため、実際には満足のいくものではありません。

.xsessionrcから別のファイルを入手するために私がしなければならない魔法の侵入はありますか、それとも私の考えに他の明らかな欠陥がありますか?

5
BinaryBongo

標準のsourcingコマンドでファイルをソーシングする理由はありません。つまり、sourceではなく.です(これはtcsh、bash、ksh、zshでもサポートされているcshismです)。ただし、標準ではありません).xsessionrcからは機能しません。

ソースファイルの構文が標準のsh構文であることを確認する必要があります。

5

なぜこれを.xsessionrcで行っているのですか? .bash_profileまたはシェルが使用する他のファイルログイン(各シェルから供給される.bashrcと混同しないでください)?ここ(Fedora)には役立つコメントもありますUser specific environment and startup programs .. ..

2
vonbrand