Я использую экран ежедневно для своих нужд терминала, и я вполне доволен этим. В последнее время , хотя, я сделал некоторые обновления мои файлы конфигурации Баш , и я заметил , что я устанавливал различные PATH
элементы ( PATH
, MANPATH
, INFOPATH
и т.д.) в 2 -х местах. Я изменил файлы, чтобы они были такими, какими они должны быть, и теперь все мои переменные окружения устанавливаются один раз .bash_profile
. В этом и заключается моя проблема.
Очевидно, причина, по которой я устанавливал их в двух местах, была из-за экрана. экран появляется только выполнить .bashrc
и не не появляется , чтобы наследовать мои PATH
правильно или любую другую среду переменными из моей первоначальной Баш оболочки. Поскольку он только выполняется, .bashrc
и я теперь устанавливаю только мои переменные .bash_profile
, я получаю неполное PATH
.
Мой вопрос в том, как вывести мои переменные окружения на экран без дублирования. Считывание Bash
документов, похоже, указывает на то, что это может быть оболочка, используемая экраном для входа в систему, то есть интерактивная оболочка без регистрации, но я не мог понять, как заставить экран использовать оболочку определенного типа, только оболочка для использования через -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 ../..'
...
[~]$
Ты можешь видеть