Mac Gnu-Screen no carga el archivo .bash_profile predeterminado

13

Tengo un montón de configuraciones personalizadas en mi bash_profile. cuando uso gnu-screen, me di cuenta de que mis pantallas no se ejecutan source /Users/disappearedng/.bash_profile. Intento poner la fuente /Users/disappearedng/.bash_profile en mi archivo .screenrc pero luego se queja de que alias no es un comando ... (supongo que screenrc necesita un comando específico de screenrc).

He intentado cambiar mi .bash_profile a .profile o .bash_rc. Nada de eso funciona.

¿Alguna ayuda?

desaparecido
fuente

Respuestas:

15

El archivo .bash_profile (y también el archivo .profile) se carga para shells de inicio de sesión, los shells sin inicio de sesión usan .bashrc (sin símbolo _). Hay una línea en el archivo .screenrc que le dice a la pantalla qué shell generar al iniciar una ventana de pantalla (cuando no se inicia un programa específico como la aplicación de ventana). En mi archivo .screenrc, esto es así (incluidos los comentarios también):

# shell:  Default process started in screen's windows.
# Makes it possible to use a different shell inside screen
# than is set as the default login shell.
# If begins with a '-' character, the shell will be started as a login shell.
  shell -$SHELL

Verifique su archivo .screenrc y verifique que la línea de shell tenga el guión delante. Al tener ese símbolo de guión y forzar un shell de inicio de sesión, obtendrá su .bash_profile de origen. La variable $ SHELL en mi .screenrc está usando el valor de shell proporcionado por el shell que inicia la pantalla (generalmente para mí es bash).

En caso de que se lo esté preguntando, la mayor diferencia que he podido descubrir entre los shells de inicio de sesión versus no inicio de sesión es que normalmente se invoca un shell sin inicio de sesión para ejecutar scripts.

Topo matricial
fuente
¡Ah gracias! Además, ¿hay alguna manera de hacerme saber fácilmente que esta ventana actual está dentro de la pantalla gnu?
desaparecido el
la opción hardstatus en el archivo .screenrc se puede usar para ayudar a asegurar que pueda identificar que está en la pantalla (junto con algunas otras configuraciones ingeniosas también entiendo). La página del manual de la pantalla debe tener los detalles sobre cómo configurarlo (no los conozco).
Matrix Mole
2

El abastecimiento .bash_profilees en realidad algo diferente que la aplicación de terminal Mac hace que la mayoría de las aplicaciones de terminal no hacen. ~/.bashrcSin embargo, la pantalla se lee cada vez que genera un nuevo shell.

Si cambia el nombre de ~/.bash_profilea ~/.bashrc(sin guión bajo entre bash y rc, como en su pregunta), se obtendrá.

Sin embargo, mi estrategia preferida es poner todos mis ajustes en el bashrc, y luego obtenerlo de bash_profileesta manera:

[ -f .bashrc ] && . .bashrc
Freedom_Ben
fuente
-1

No necesita cambiar ningún archivo de configuración, si escribe todas sus configuraciones .bash_profile, como lo hace normalmente para configurar su terminal, y crea un enlace llamado .bashrcapuntando a su .bash_profilepara las sesiones de pantalla a través de:

$ ln -s ~/.bash_profile ~/.bashrc

Cualquier cambio realizado en uno de los archivos se almacena .bash_profilepero también es accesible para ellos .bashrc.

El único inconveniente es que no puede agregar configuraciones a solo uno de los archivos de configuración.

tarquness
fuente
¿Puedes ampliar un poco esta respuesta? Realmente no has explicado cómo esto resolvería el problema.
bwDraco