Uso la pantalla a diario para mis necesidades de terminal y estoy bastante contento con ella. Recientemente, sin embargo, he hecho algunos cambios a los archivos de configuración de bash y me di cuenta de que yo estaba sentado varios PATH
elementos ( PATH
, MANPATH
, INFOPATH
, etc.) en 2 lugares. Modifiqué los archivos para que sean lo que deberían ser y ahora todas mis variables de entorno se configuran una vez .bash_profile
. Aquí yace mi problema.
Aparentemente, la razón por la que los puse en dos lugares fue por la pantalla. parece que la pantalla solo se ejecuta .bashrc
y no parece heredar mi PATH
o cualquier otra variable de entorno correctamente de mi shell bash original. Debido a que solo se ejecuta .bashrc
y ahora solo configuro mis variables .bash_profile
, obtengo un incompleto PATH
.
Mi pregunta, entonces, es cómo llevar mis variables de entorno a la pantalla sin la duplicación. Leer los Bash
documentos parece indicar que podría ser el tipo de shell que utiliza la pantalla para iniciar sesión, es decir, un shell interactivo sin inicio de sesión, pero no pude descubrir cómo forzar a la pantalla a usar un tipo particular de shell, solo el shell para usar a través de -s /bin/bash
.
Puedes leer mis archivos de configuración en mi página de GitHub . Este es el commit commit que rompió la pantalla .
EDITAR: estoy usando Screen version 4.00.03 (FAU) 23-Oct-06
y tiendo a invocarlo porscreen -h 50000
EDITAR: ahora he podido probar esto en Cygwin ( CYGWIN_NT-5.1 1.7.1(0.218/5/3) i686
, Screen version 4.00.03 (FAU) 23-Oct-06
) y muestra un comportamiento diferente que en mi Mac.
El comportamiento específico que he descubierto ahora es que en Cygwin los cambios que hago PATH
en .bash_profile se duplican al ingresar a la pantalla y luego la creación sucesiva de ventanas de pantalla no duplican la ruta, sino que vuelven a fuente .bash_profile.
Para ilustrar el comportamiento del que estoy hablando:
Salida desde una nueva terminal:
...
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 ../..'
...
[~]$
Salida de la primera invocación de pantalla:
[~]$ 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 ../..'
...
[~]$
Llamadas posteriores a 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 ../..'
...
[~]$
Puedes ver