Wenn ich Terminal.app schließe und öffne, wird mein ~ / .bash_profile nie geladen. Ich habe mein RVM-Setup oben in der Datei, aber es wird nie geladen.
Wie Sie sehen können, bedeutet das bei der Eingabe rvm
in Terminal, dass command not found
dies ein Schmerz ist, da ich source ~/.bash_login
jedes Mal laufen muss, wenn ich Terminal öffne.
Bin ich der einzige mit diesem Problem? Was mache ich falsch?
When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. The --noprofile option may be used when the shell is started to inhibit this behavior.
source ~/.bash_login
" Was ist das? Verwenden Sie ~ / .bash_profile oder ~ / .bash_login? Nur einer von ihnen wird ausgeführt.Antworten:
Muss es sein
.bash_login
? Versuchen Sie es umzubenennen.profile
.quelle
.bash_profile
- was funktioniertecho .bash_login
am Anfang von ~ / .bash_login setzen, um zu sehen, ob es ausgeführt wird. Natürlich wird es nicht ausgeführt, wenn Sie auch ~ / .bash_profile haben.Bash liest die
.bash_login
Datei nur, wenn sie als Login-Shell gestartet wurde (das--login
Flag wurde übergeben). Versuchen Sie.bashrc
stattdessen, es in umzubenennen. Dies wird ausgewertet, wennbash
es als interaktive Shell ohne--login
Flag aufgerufen wurde .quelle
Stellen Sie sicher, dass Ihr .bash_login-Skript keine relativen Pfade wie enthält
Quelle .profile
Ändern
Quelle ~ / .profile
Lion ändert das Verzeichnis in Ihren aktuellen Tab oder in den Ordner, in dem sich Ihre letzte Sitzung befindet. Daher müssen jetzt alle Pfade absolut sein.
quelle
Bei mir lädt bash in Lion auch nicht ~ / .profile.
Das Hinzufügen eines
source ~/.profile
Befehls zur Ausführung beim Start in den Shell-Einstellungen hat geholfen, ist aber ziemlich unelegant.quelle
Ändern von .bashrc von
zu
hat den Trick für mich getan.
quelle
Das Standardverhalten auf meinem MacBook, auf dem Sierra ausgeführt wird (ich kenne High Sierra nicht), scheint darin zu bestehen, dass das Terminal bei der
.bash_profile
Anmeldung ausgeführt wird.Nur wenn
.bash_profile
dies nicht vorhanden ist, wird das Terminal ausgeführt.bash_login
.Vergewissern Sie sich, dass
.bash_profile
in Ihrem Home-Verzeichnis kein Platz frei ist . Wenn Sie dies tun, löschen Sie es und melden Sie sich erneut an. dann sollten Sie sehen, Terminal läuft Ihre.bash_login
.(Empirisch: Mein MacBook lässt sich entweder
.profile
oder nicht öffnen oder ausführen.bashrc
. In der Tat kann ich mein MacBook.bash_login
durch Ausführen deaktivierentouch ~/.bash_profile
und es durch Ausführen in den Betriebszustand zurückversetzenrm ~/.bash_profile
.)quelle