Bash - welche Initialisierungsdatei?
Um die Frage zu entscheiden, wann welche Initialisierungsdateien ausgeführt werden, ist es zunächst wichtig, zwischen diesen drei Aufrufarten zu unterscheiden:
- Login Shell
- Interaktive Shell (nicht Login)
- Nicht interaktiv
Die Unterscheidung ist beim Nachlesen der Dokumentation etwas verwirrend, am einfachsten können Sie sich aber Folgendes merken:
- Login per ssh und Textkonsole: Login Shell
- Login per grafischer Oberfläche: Interaktive Shell
- Aufrufe per Shellscript: Nicht-interaktive Shell
Aufruf der verschiedenen Scripte:
- Login Shell: .bash_profile
- Interaktive Shell: .bashrc
- Nicht-interaktive Shell: keines von beiden, stattdessen wird die in BASH_ENV angegebene Datei eingelesen
Wenn Sie nun erreichen wollen, dass Ihre .bashrc sowohl bei Login Shells als auch Interaktiven Shells ausgeführt wird, schreiben Sie eine .bash_profile Datei mit folgendem Inhalt:
source $HOME/.bashrc
Sie sollten diesen Aufruf aber niemals in der .bashrc ausführen, da Sie sonst eine Endlosschleife erzeugen.