我每天都使用屏幕来满足终端的需求,对此我感到非常满意。不过,最近我做了一些更新我的bash配置文件和我注意到,我设置各种PATH
元素(PATH
,MANPATH
,INFOPATH
在2个地方,等)。我将文件修改为应有的样子,现在我的所有环境变量都已设置一次.bash_profile
。这就是我的问题。
显然,我之所以将它们设置在两个位置是因为屏幕。屏幕似乎仅执行.bashrc
,似乎没有PATH
从原始bash shell正确继承我的或任何其他环境变量。因为它仅执行,.bashrc
并且我现在仅将变量设置为in .bash_profile
,所以我得到的不完整PATH
。
那么,我的问题是如何在不进行复制的情况下将环境变量显示到屏幕上。阅读Bash
文档似乎表明它可能是屏幕用于登录的外壳类型,即非登录交互式外壳,但是我不知道如何强制屏幕使用特定类型的外壳,只有通过使用的shell -s /bin/bash
。
您可以在GitHub页面上仔细阅读我的配置文件。 这是打破屏幕的提交提交。
编辑:我正在使用,Screen version 4.00.03 (FAU) 23-Oct-06
并且我倾向于通过screen -h 50000
编辑:我现在已经能够在Cygwin()上进行测试CYGWIN_NT-5.1 1.7.1(0.218/5/3) i686
,Screen version 4.00.03 (FAU) 23-Oct-06
并且它表现出与Mac上不同的行为。
我现在发现的特定行为是,在Cygwin中,我对PATH
.bash_profile 所做的更改在进入屏幕时会被复制,然后连续创建屏幕窗口不会复制路径,而是重新提供.bash_profile。
为了说明我正在谈论的行为:
来自新终端的输出:
...
PATH: /home/tvishe01/bin/emacs/bin:/home/tvishe01/bin:/usr/local/bin:/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/Program Files/ATI Technologies/ATI.ACE/Core-Static:/groovy-1.6.1/bin:/usr/lib/lapack
MANPATH: /home/tvishe01/share/man:/usr/local/man:/usr/share/man:/usr/man::/usr/ssl/man
Aliases:
alias ..='cd ..'
alias ...='cd ../..'
...
[~]$
屏幕第一次调用的输出:
[~]$ screen -h 50000 -s -/bin/bash
...
PATH: /home/tvishe01/bin/emacs/bin:/home/tvishe01/bin:/usr/local/bin:/usr/bin:/bin:/home/tvishe01/bin/emacs/bin:/home/tvishe01/bin:/usr/local/bin:/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/Program Files/ATI Technologies/ATI.ACE/Core-Static:/groovy-1.6.1/bin:/usr/lib/lapack
MANPATH: /home/tvishe01/share/man:/usr/local/man:/usr/share/man:/usr/man:/home/tvishe01/share/man:/usr/local/man:/usr/share/man:/usr/man::/usr/ssl/man:/usr/ssl/man
Aliases:
alias ..='cd ..'
alias ...='cd ../..'
...
[~]$
随后的呼叫C-a c
:
...
PATH: /home/tvishe01/bin/emacs/bin:/home/tvishe01/bin:/usr/local/bin:/usr/bin:/bin:/home/tvishe01/bin/emacs/bin:/home/tvishe01/bin:/usr/local/bin:/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/Program Files/ATI Technologies/ATI.ACE/Core-Static:/groovy-1.6.1/bin:/usr/lib/lapack
MANPATH: /home/tvishe01/share/man:/usr/local/man:/usr/share/man:/usr/man:/home/tvishe01/share/man:/usr/local/man:/usr/share/man:/usr/man::/usr/ssl/man:/usr/ssl/man
Aliases:
alias ..='cd ..'
alias ...='cd ../..'
...
[~]$
你可以看到