Ja, wird es bei jedem Öffnen des Terminals automatisch bezogen?
i3wangyi
Antworten:
104
Ja, es heißt ~/.zshenv.
So habe ich mich $JAVA_HOMEeingestellt ~/.zshenv:
export JAVA_HOME="$(/usr/libexec/java_home)"
Beachten Sie jedoch, dass zsh kein Bash ist. Nur weil Sie .bash_profilejedes Mal, wenn Sie ein Terminal öffnen, Ihre Quelle angeben müssen, bedeutet dies nicht , dass Sie dies mit zsh tun müssen. Mit zsh muss ich meine nur neu beziehen, ~/.zshenvwenn ich Änderungen daran vornehme , und dann nur für Terminals, die bereits geöffnet sind : Neue Terminals sollten meine neuen und verbesserten bereits beschafft haben ~/.zshenv.
HINWEIS
Ich finde es oft hilfreich, wenn ich versuche herauszufinden, in welche meiner zsh-Startdateien ich Dinge legen soll, um zsh-Startdateien zu konsultieren .
Eigentlich .zprofileist näher an der Bedeutung .bash_profile, dass beide nur von ihren jeweiligen Shells für Login-Shells bezogen werden. .zshenvwird für alle Instanzen ausgeführt zsh, unabhängig davon , ob es sich um Login-Shells handelt oder nicht.
Chepner
6
In @chepner .zshenvsollten alle Umgebungsvariablen definiert werden. Siehe hier
Alexej Magura
3
Einverstanden; .bash_profilemuss für bashwas tun .zshenvund .zprofile/.zloginzusammen für zsh. Dieser Link bietet gute Informationen darüber, was wohin gehen soll.
Chepner
31
Ich weiß, dass dies eine alte Frage ist, aber ich habe kürzlich MacOs auf Catalina aktualisiert, wodurch die Standard-Shell von bash auf zsh geändert wurde.
Verwenden Sie den folgenden Befehl, um sicherzustellen, dass die Datei im Home-Verzeichnis des Benutzers erstellt wird:echo source ~/.bash_profile > ~/.zshenv
Smair
Ist die Verwendung von echohier wichtig? Was macht das?
QA Sam
3
@QASam, Echo ist hier ein Muss, X > Ynur das übergeben, was X ausgegeben hat. Ohne Echo wird nichts ausgegeben.
James LoveLady
3
Kürzlich, mit dem Upgrade von Mac auf Catalina OS, wird standardmäßig die Z-Shell ausgeführt, die die zshrc-Datei als Z-Shell-Ressource verwendet. Normalerweise hatten wir bash_profile im Home-Verzeichnis des Benutzers. Die Lösung besteht darin, einfach
Kopieren Sie Inhalte von bash_profile, indem Sie> vim ~ / .bash_profile öffnen
Erstellen Sie zshrc mit> vim ~ / .zshrc
Kopieren Sie den Inhalt von bash_profile in zsrc
Öffnen Sie ein neues Terminalfenster und führen Sie das Skript Ihres vorherigen Alias aus. Es sollte einwandfrei funktionieren
Könnte es einige Unterschiede zwischen bash und zsh geben, die dazu führten, dass bash_profile nicht richtig gestartet wurde? siehe zsh.sourceforge.net/FAQ/zshfaq02.html#l14
framontb
0
In Mac Catalina verwendet das Terminal zsh. Anstatt .bash_profile zu haben, ist es gut, .zshenv zu haben und dort Ihr Skript zu schreiben.
Wenn Sie das nächste Mal das Terminal öffnen, werden Skripte in .zshenv ausgeführt.
Antworten:
Ja, es heißt
~/.zshenv
.So habe ich mich
$JAVA_HOME
eingestellt~/.zshenv
:export JAVA_HOME="$(/usr/libexec/java_home)"
Beachten Sie jedoch, dass zsh kein Bash ist. Nur weil Sie
.bash_profile
jedes Mal, wenn Sie ein Terminal öffnen, Ihre Quelle angeben müssen, bedeutet dies nicht , dass Sie dies mit zsh tun müssen. Mit zsh muss ich meine nur neu beziehen,~/.zshenv
wenn ich Änderungen daran vornehme , und dann nur für Terminals, die bereits geöffnet sind : Neue Terminals sollten meine neuen und verbesserten bereits beschafft haben~/.zshenv
.HINWEIS
Ich finde es oft hilfreich, wenn ich versuche herauszufinden, in welche meiner zsh-Startdateien ich Dinge legen soll, um zsh-Startdateien zu konsultieren .
quelle
.zprofile
ist näher an der Bedeutung.bash_profile
, dass beide nur von ihren jeweiligen Shells für Login-Shells bezogen werden..zshenv
wird für alle Instanzen ausgeführtzsh
, unabhängig davon , ob es sich um Login-Shells handelt oder nicht..zshenv
sollten alle Umgebungsvariablen definiert werden. Siehe hier.bash_profile
muss fürbash
was tun.zshenv
und.zprofile/.zlogin
zusammen fürzsh
. Dieser Link bietet gute Informationen darüber, was wohin gehen soll.Ich weiß, dass dies eine alte Frage ist, aber ich habe kürzlich MacOs auf Catalina aktualisiert, wodurch die Standard-Shell von bash auf zsh geändert wurde.
Am Ende habe ich das gemacht:
echo source ~/.bash_profile > ~/.zshenv && source ~/.zshenv
Um zsh Quelle mein ursprüngliches .bash_profile zu haben.
quelle
echo source ~/.bash_profile > ~/.zshenv
echo
hier wichtig? Was macht das?X > Y
nur das übergeben, was X ausgegeben hat. Ohne Echo wird nichts ausgegeben.Kürzlich, mit dem Upgrade von Mac auf Catalina OS, wird standardmäßig die Z-Shell ausgeführt, die die zshrc-Datei als Z-Shell-Ressource verwendet. Normalerweise hatten wir bash_profile im Home-Verzeichnis des Benutzers. Die Lösung besteht darin, einfach
Öffnen Sie ein neues Terminalfenster und führen Sie das Skript Ihres vorherigen Alias aus. Es sollte einwandfrei funktionieren
quelle
Eine andere einfache Alternative, um Ihr .bash_profile weiter zu verwenden, ist das Hinzufügen dieser Datei zu Ihrer .zshrc-Datei:
Mit dieser einfachen Lösung können Sie Ihre .bash_prifile weiter hinzufügen, wenn Sie zhs mögen.
Hinzufügen von .bash_profile
quelle
In Mac Catalina verwendet das Terminal zsh. Anstatt .bash_profile zu haben, ist es gut, .zshenv zu haben und dort Ihr Skript zu schreiben.
Wenn Sie das nächste Mal das Terminal öffnen, werden Skripte in .zshenv ausgeführt.
quelle