Я использую экран ежедневно для своих нужд терминала, и я вполне доволен этим. В последнее время , хотя, я сделал некоторые обновления мои файлы конфигурации Баш , и я заметил , что я устанавливал различные элементы 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
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 ../..'
...
[~]$
Ты можешь видеть