Uso a tela diariamente para minhas necessidades de terminal e estou muito feliz com isso. Recentemente, porém, eu fiz algumas atualizações para os meus arquivos de configuração bash e notei que eu estava assentado vários PATHelementos ( PATH, MANPATH, INFOPATH, etc) em 2 lugares. Modifiquei os arquivos para serem o que deveriam ser e agora todas as minhas variáveis de ambiente são definidas uma vez .bash_profile. Aqui reside o meu problema.
Aparentemente, o motivo de colocá-los em dois lugares foi por causa da tela. tela parece executar apenas .bashrce não não parece herdar PATHcorretamente minhas ou quaisquer outras variáveis de ambiente do meu shell bash original. Como ele é executado apenas .bashrce agora defino apenas minhas variáveis .bash_profile, recebo um incompleto PATH.
Minha pergunta, então, é como colocar minhas variáveis de ambiente na tela sem a duplicação. Lendo através doBash documentos parece indicar que poderia ser o tipo de shell que a tela usa para efetuar login, ou seja, um shell interativo sem login, mas não consegui descobrir como forçar a tela a usar um tipo específico de shell, apenas o shell para usar via -s /bin/bash.
Você pode ler meus arquivos de configuração em minha página do GitHub . Esse é o commit de confirmação que quebrou a tela .
EDITAR: eu estou usando Screen version 4.00.03 (FAU) 23-Oct-06e tendem a invocá-lo porscreen -h 50000
EDITAR: Agora eu tenho sido capaz de testar isso no Cygwin ( CYGWIN_NT-5.1 1.7.1(0.218/5/3) i686, Screen version 4.00.03 (FAU) 23-Oct-06) e exibe um comportamento diferente do que no meu Mac.
O comportamento específico que descobri agora é que, no Cygwin, as alterações feitas PATHno arquivo .bash_profile são duplicadas ao entrar na tela e, em seguida, a criação sucessiva de janelas de tela não duplica o caminho, mas gera novamente o arquivo .bash_profile.
Para ilustrar o comportamento de que estou falando:
Saída de um terminal novo:
...
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 ../..'
...
[~]$
Saída da primeira chamada da tela:
[~]$ 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 ../..'
...
[~]$
Chamadas subsequentes para 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 ../..'
...
[~]$
Você pode ver