macOS Catalina 10.15 (Beta) - Warum wird ~ / .bash_profile nicht von meiner Shell bezogen?


113

Ich mag die Umgebungsvariable setzen I unter der Linie hinzugefügt ~/.bash_profileund ~/.profileaber es hat nicht funktioniert.

export JBOSS_HOME=/Users/{USERNAME}/Desktop/jboss7

Verlassen Sie danach das Terminal und öffnen Sie es erneut, wenn Sie es ausführen. echo $JBOSS_HOMEIch erhalte nichts.
Geben Sie hier die Bildbeschreibung ein


Ich denke, .bash_profile wurde nicht bezogen. Sind Sie sicher, dass Ihr Terminal eine Bash- Login- Shell erstellt? Wenn nicht, wird .bash_profile ignoriert.
user1934428

1
@ user1934428 Ja, das stimmt. Ich weiß nicht, warum die Standard-Bash geändert wurde? !!
Reza Dehnavi

Ich verstehe es nicht Welcher "Standard" wird geändert? Sie haben nicht angegeben, welches Terminal-Programm Sie verwenden, aber normalerweise können Sie die Terminal-Anwendung so konfigurieren, dass die Shell gestartet wird.
user1934428

@ user1934428 Ich wusste nicht, dass es die verschiedenen Shell gibt.
Reza Dehnavi

1
Apple ersetzt bash durch zsh als Standard-Shell in macOS Catalina stackoverflow.com/a/59151321/5788247
Shomu

Antworten:


288

Apple hat die Standard-Shell in zsh geändert. Daher müssen Sie Ihre Konfigurationsdateien umbenennen. .bashrcist jetzt .zshrcund .bash_profileist jetzt .zprofile.


3
Apple wechselte aufgrund von Lizenzproblemen von Bash zu Zshell. thenextweb.com/dd/2019/06/04/…
Manuel Hernandez

109
Es ist eine großartige Benutzererfahrung, wie mein Entwickler-Setup bei jedem OS-X-Upgrade kaputt geht
Chris Hatton,

2
@ChrisHatton Ich warte einfach weiter auf das nächste Update, damit ich mein aktuelles Setup brechen und alles von vorne anfangen kann. Ich freue mich auf die nächste Veröffentlichung!
Utsav Gupta

46

Wenn Sie (wie ich) aus irgendeinem Grund Ihre ~/.bash_profileDatei nicht umbenennen / verschieben möchten, können Sie die folgenden Schritte ausführen:

  1. Erstellen Sie eine neue Datei ~/.zprofile
  2. Geben Sie dort ein source ~/.bash_profile
  3. Speichern und schließen
  4. Führen Sie eine neue Terminalsitzung aus

5

Ich habe eine neue Datei namens erstellt

/usr/local/bin/mybash

welches ein Wrapper-Skript enthält:

/usr/local/bin/bash --init-file $HOME/.bashrc

Ich habe dieses lokale / bin / bash von HomeBrew installiert .

Vollständige Abfolge von Ereignissen

brew install bash
echo "/usr/local/bin/bash --init-file $HOME/.bashrc" > /usr/local/bin/mybash
chmod +x /usr/local/bin/mybash

Dann habe ich die Einstellungen für terminal.app[cmd-Komma] geöffnet . GeneralAktivieren Sie unter der Registerkarte das Optionsfeld fürCommand (complete path)

Ändern Sie im Textfeld den Text von /bin/zsh/nach /usr/local/bin/bash.

Beispiel für das endgültige Format


1
Dies ist eine gute Option, da die obigen Antworten nicht berücksichtigen, dass bestimmte Syntaxen in zsh und bash unterschiedlich sind.
Prashant Sharma

3

Nachdem Sie ein Terminalfenster geschlossen haben, sind die in diesem Fenster festgelegten Variablen nicht mehr verfügbar. Wenn Sie möchten, dass der Wert einer Variablen über Sitzungen und in allen Terminalfenstern hinweg erhalten bleibt, müssen Sie ihn in einem Shell-Startskript festlegen. Informationen zum Ändern Ihres Startskripts für die zsh-Shell, um Variablen und andere Einstellungen über mehrere Sitzungen hinweg beizubehalten, finden Sie im Abschnitt „Aufruf“ der zsh-Manpage .

Sie können verwenden ~/.zlogin, um Ihre Variablen hinzuzufügen.

Überprüfen Sie diese Referenz .


0

Das Ändern des Bash-Profils in ein zsh-Profil funktioniert und es wird auch als Quelle verwendet, um es in Aktion zu sehen.

vikas@Vikas-Kumar ~ % mv .bash_profile .zsh_profile
vikas@Vikas-Kumar ~ % source .zsh_profile

0

Sie können einen simbolischen Link erstellen und Ihre .bash_profile-Datei folgendermaßen behalten:

ln -s .bash_profile .zsh_profile
source .zsh_profile

Alle Änderungen in .bash_profile werden in .zsh_profile übernommen


Ich bekomme ln: .zsh_profile: Operation nicht erlaubt
Salman Ullah Khan

-1

Sie müssen die Datei nicht aktualisieren. zsh ist die Standardeinstellung von mac. Legen Sie dies im Terminal ab. z.B:

export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools

-3
cp zprofile ~/.zprofile

Hinzufügen zu .zprofile:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

z.B. durch>vi .zprofile

Erledigt

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.