我一直在玩英语最近几天,它(像 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
由于没有人有真正的答案,这是我的可怕的黑客。某些 shell(例如 *rxvt)具有允许强制登录 shell 的设置。因此,在您的 中.Xdefaults
,您可以添加类似于
urxvt256c-ml:loginShell: true
这意味着urxvt256c-ml
您启动的所有终端默认都会有一个登录 shell。
这些帮助有用?
答案2
这么多年后回答我自己的问题, gnome-session 现在似乎做了一些魔法,从登录 shell 中提取环境变量并告诉 dbus 有关它们的信息,并且 .profile 不运行:
不幸的是,它也拒绝导出它不喜欢的东西,其中(在 2023 年)包括长字符串,因为: