
遊んでいた英語最近は、rcと同様に、.esrc
ログイン時にのみ起動スクリプトを実行する珍しい/機能があります()。各対話型セッションでコードを実行する一般的な方法は、コードを%prompt
関数に入れることです。
もちろん、一度も実行されたことがない限り、機能はありません%prompt
。es -l
したがって、質問は:gdmまたは同様のソース専用の.profile(または.xprofile、.xsessionなど)を介してログインするときにログイン環境をどのように設定しますか?私が思いついた最高は次のとおりです。
if [ -f "$HOME/.esrc" ]; then
eval "`es -l <<-x
sh <<<'export -p'
x`"
fi
これは…ひどいようですね。もっと良い方法がありますか?
答え1
誰も実際の答えを持っていないので、ここに私のひどい蜂蜜のヒントがあります。一部のシェル(例:* rxvt)には、ログインシェルを強制する設定があります。だからあなたは.Xdefaults
次のようなものを追加できます
urxvt256c-ml:loginShell: true
これはurxvt256c-ml
、実行しているすべての端末にデフォルトでログインシェルがあることを意味します。
役に立ちましたか?
答え2
数年後、私自身の質問に答えると、gnome-sessionはログインシェルから環境変数を抽出し、それについてdbusに通知する魔法を実行しているように見えますが、.profileは実行されません。
残念ながら、次の理由で長い文字列を含む気に入らない項目(2023年)のエクスポートも拒否します。