我有 ~/.bash_profile,我希望每次创建新的 GNU 屏幕时都调用它,以便我的所有别名都能在 GNU 屏幕上工作,就像在终端中工作一样。
此时我的 ~/.screenrc 如下所示。
hardstatus on
hardstatus alwayslastline
hardstatus string "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %m/%d %C%a "
答案1
shell -$SHELL
将上面的行添加到您的~/.screenrc
,这将使屏幕启动时使用登录 shell,它将加载您的~/.bash_profile
。
答案2
一些 Mac 应用程序依赖于 .bash_profile,而另一些则依赖于 .bashrc。我还没有想出任何特定规则来知道哪个应用程序正在加载,但为了保持一致性,这是我的 .bash_profile:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
答案3
Debian 和 Ubuntu(至少)在其标准配置中有一个/etc/profile.d/目录中任何包含以 结尾的文件.sh来源于/etc/配置文件。
这对于添加配置非常实用,但会让用户认为这是删除新设置的适当位置,而事实并非总是如此。
我不明白为什么他们没有做同样的事/etc/bash.bashrc,我希望他们将来会这样做,但与此同时,我自己也做了:
在以下位置创建新目录/etc/bash.bashrc.d/
类似于/etc/配置文件,在末尾添加以下几行/etc/bash.bashrc:
if test -d /etc/bash.bashrc.d/; then for bashrc in /etc/bash.bashrc.d/*.sh; do test -r "$bashrc" && . "$bashrc" done unset bashrc fi
从现在开始,将非交互式 shell 所需的文件放入/etc/bash.bashrc.d/而不是/etc/profile.d/。
这样,对现有文件唯一需要的更改是在/etc/bash.bashrc。
我认为这是用户抱怨他们的个人资料无法加载的主要原因,但实际上他们的个人资料可能没有需要待加载。
也许你可以读这关于这个主题。
答案4
我通过将 ~/.bash_profile 的所有内容移至 ~/.bashrc 解决了这个问题。显然,screen 在每个窗口之前都会调用 ~/.bashrc。– Nadal 2010 年 5 月 6 日 21:22
这条评论是正确的答案。