2011-01-05 12 views
3

Ich habe eine benutzerdefinierte Bildschirmkonfiguration myscreenconfig und eine .screenrc. myscreenconfig sieht wie folgt aus:Wie erhalten Sie eine benutzerdefinierte Gnu-Bildschirmkonfiguration zum Laden von .bash_profile und .bash_aliases?

source .screenrc 
screen 0 bash 
title 'notes' 
screen 1 bash 
title 'bash' 
[etc.] 

.screenrc diese Zeilen an der Spitze hat:

altscreen on 
shell -${SHELL} 

Meine .bash_profile Datei eine Menge Dinge legt und ruft dann source $HOME/.bash_aliases. Wenn ich screen ohne Argumente starte, wird meine .bash_profile geladen und .bash_aliases wird geladen. Aber wenn ich den Bildschirm über screen -c myscreenconfig starte, wird nur .bash_profile geladen, und nicht .bash_aliases. Warum? Wie kann ich das beheben?

+0

Obwohl beantwortet, das wirklich auf serverfault sein sollte ... –

Antwort

0

Da Sie keine Login-Shells in myscreenconfig verwenden. Verwenden Sie (IIRC) screen 0 -bash oder versuchen Sie Kombinationen mit deflogin on.

3

Was für mich gearbeitet machte eine symbolische Verbindung zwischen wo ich meine bash Einstellungen hatte und Bashrc (was ich nicht hatte):

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

ich auf einer der Maschinen das gleiche Problem hatte ich . den Vorschlag oben über die Verknüpfung der beiden bash-Ressource-Dateien Nach dem Lesen, erkannte ich, dass der folgende Abschnitt in Kommentar in der .bash_profile-Datei auf dieser Maschine gestellt worden war:

# Get the aliases and functions 
# if [ -f ~/.bashrc ]; then 
# . ~/.bashrc 
# fi 

Nach dem Entfernen der Kommentarzeichen (#) aus Vor den if Blockzeilen wurden Einstellungen in .bashrc auch in Bildschirmsitzungen verfügbar.

0

ich dies in meinem .bashrc bin

if [ "$TERM" = "screen" ]; then 
     if [ -f ~/.bash_profile ]; then 
       . ~/.bash_profile 
     fi 
fi