Terminal: source ~/.bash_profile jedes Mal ausführen, wenn neues Terminal gestartet wird [geschlossen]

Ich habe einige Befehlszeilenprogramme installiert (z. B. rbenv), aber jedes Mal, wenn ich einen neuen Terminal-Tab öffne, sieht es so aus, als würde die Umgebung zurückgesetzt. Ich muss mein .bash_profile manuell beziehen:

source ~/.bash_profile

Ich habe einige Tutorials befolgt und diesen Code in mein .bash_profile eingefügt , aber es funktioniert nicht:

if [ -n "$BASH_VERSION" ] && [ -f $HOME/.bashrc ];then
    source $HOME/.bashrc
fi

Dies passiert auf meinem alten Mac nicht und ich weiß nicht, wie ich das konfigurieren soll.

Was meinst du mit dem Code "funktioniert nicht"? - Wie funktioniert es nicht? - Haben Sie tatsächlich eine .bashrc-Datei?
Haben Sie versucht, Terminal.app zu schließen und neu zu starten?
Ja. Ich habe eine bashrc-Datei erstellt. (und starte source ~/.bash_profile)
@jksoegaard ja. Ich habe die Terminal-App neu gestartet.
Und was genau ist dein Problem? - Dass der Code in .bash_profile nicht ausgeführt wird? - oder dass der Code in Ihrer .bashrc-Datei nicht ausgeführt wird? Sind Sie sicher, dass Sie es ".bashrc" und nicht "bashrc" genannt haben (beachten Sie den führenden Punkt)
Wenn .bash_profilees beim Start nicht automatisch bezogen wird, wird es durch Ändern seines Inhalts (wie Sie in der Frage beschreiben) nicht bezogen. Was ist in deinem .bashrc, in deinem .bash_profile, in deinem .profile?

Antworten (3)

Wenn Sie oh-my-zsh verwenden , wird standardmäßig automatisch geladen ~/.zshrc. Alles, was Sie tun müssen, ist Folgendes am Ende von hinzuzufügen ~/.zshrc:

if [ -f ~/.bash_profile ]; then
  . ~/.bash_profile
fi

.bashrcwird standardmäßig geladen. Wenn Sie also alle Ihre Sachen haben, .bash_profilestellen Sie sicher, dass sie geladen werden, also müssen Sie Folgendes zu Ihrem hinzufügen .bashrc:

if [ -f ~/.bash_profile ]; then
  . ~/.bash_profile
fi

Sie können Ihre Umgebung in ~/.zprofileanstelle von bearbeiten ~/.bash_profile. Öffnen Sie dann ein Terminal erneut.

Unter MacOS Monterey war dies die einzige Antwort, die für mich funktionierte (durch Ausführen von .bashrc in .zprofile). .bashrc, .bash_profile und .zshrc werden nicht eigenständig ausgeführt.