最近几天我一直在玩es,它(如rc)具有一个怪癖/功能,即它仅.esrc
在登录时运行其启动脚本()。在每个交互式会话中运行代码的通常方法是将该代码放入%prompt
函数中。
当然,%prompt
如果es -l
从未运行过,则没有任何功能。
那么,问题来了:当您通过gdm或类似资源(仅源.profile(或.xprofile,.xsession等))进入时,如何设置登录环境?我想出的最好的是:
if [ -f "$HOME/.esrc" ]; then
eval "`es -l <<-x
sh <<<'export -p'
x`"
fi
这似乎令人震惊。有更好的方法吗?
es
是我的登录外壳。对不起,如果我不清楚。但是至少在我所知的范围内,在启动终端之前,登录shell不会在X会话中运行。
我用
—
cjm 2012年
bash
,不用es
。但是,当我打开一个新的终端窗口时,它将bash
作为登录外壳运行。
至少对于大多数X终端,此选项默认情况下是禁用的(应该是IMO)。因此,是的,这是一种解决方法,但是没有理由在可以一次运行时将其运行多次。
—
james.haggerty 2012年
嗯,不确定我同意您的编辑,吉尔斯。您为什么认为这仅适用于es?(而不是* csh或rc或...?),为什么要删除gdm和lightdm,因为它们是控制环境的代码?
—
james.haggerty 2012年
es
不是您的登录外壳。怎么样设置alias es='es -l'
的.bashrc
?