Mac Gnu-Screen不会加载默认的.bash_profile


15

我的bash_profile中有很多自定义设置。当我使用gnu-screen时,我意识到我的屏幕无法执行source /Users/disappearedng/.bash_profile。我尝试将源/Users/disappearedng/.bash_profile放在我的.screenrc文件中,但随后它抱怨别名不是命令...(我想screenrc需要特定于screenrc的命令)。

我尝试将.bash_profile更改为.profile或.bash_rc。没有任何工作。

有什么帮助吗?

Answers:


17

.bash_profile文件(以及.profile文件)也已装入登录shell,非登录shell使用.bashrc(无_符号)。.screenrc文件中有一行告诉屏幕启动启动窗口时(不启动特定程序作为窗口应用程序时)要生成的外壳。在我的.screenrc文件中,它是这样的(以及注释):

# shell:  Default process started in screen's windows.
# Makes it possible to use a different shell inside screen
# than is set as the default login shell.
# If begins with a '-' character, the shell will be started as a login shell.
  shell -$SHELL

检查您的.screenrc文件,并验证shell行前面是否带有短划线。通过使用破折号并强制使用登录shell,您将获得.bash_profile源文件。我的.screenrc中的$ SHELL变量使用的是启动屏幕的shell提供的shell值(通常对我来说是bash)。

如果您想知道,我能够发现的登录外壳程序和非登录外壳程序之间最大的区别在于,非登录外壳程序通常是执行脚本所调用的。


啊,谢谢!另外,是否有一种方法可以轻松地让自己知道当前窗口位于gnu屏幕内?
消失了

.screenrc文件中的hardstatus选项可用于帮助确保您可以确定自己在屏幕上(我也了解其他一些漂亮的设置)。屏幕手册页应包含有关如何配置它的详细信息(不知道这些内容太难理解了)。
Matrix Mole

3

采购.bash_profile实际上不同于Mac终端应用程序,大多数终端应用程序都没有。~/.bashrc但是,每次您生成新外壳时,屏幕都不会读取。

如果您将其重命名~/.bash_profile~/.bashrc(在您的问题中,bash和rc之间没有下划线),那么它将被获取。

不过,我的首选策略是将所有设置都放在中bashrc,然后bash_profile像这样从中获取它:

[ -f .bashrc ] && . .bashrc

-1

如果您将所有设置都写入,则无需更改任何配置文件,.bash_profile就像通常设置终端一样,并通过以下方式创建.bashrc指向.bash_profile屏幕会话的指向您的链接:

$ ln -s ~/.bash_profile ~/.bashrc

对其中一个文件所做的任何更改都存储在中,.bash_profile但也可以通过访问.bashrc

唯一的缺点是您不能将设置仅添加到一个配置文件中。


您能否对此问题稍作扩展?您尚未真正解释这将如何解决问题。
bwDraco 2014年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.