Za każdym razem, gdy otwieram terminal, muszę .bash_profilewłączyć źródło, aby włączyć $JAVA_HOMElub inne zmienne.
Odpowiedzi:
Tak, nazywa się ~/.zshenv.
Oto jak $JAVA_HOMEustawiłem się w ~/.zshenv:
export JAVA_HOME="$(/usr/libexec/java_home)"
Pamiętaj jednak, że zsh to nie bash, więc to, że musisz pozyskiwać swój .bash_profilekod za każdym razem, gdy otwierasz terminal, nie oznacza, że musisz to robić z zsh. W przypadku zsh muszę ponownie pobrać moje źródło tylko ~/.zshenv wtedy, gdy wprowadzę w nim zmiany , i tylko dla terminali, które są już otwarte : nowe terminale powinny już być pozyskane z mojego nowego i ulepszonego ~/.zshenv.
UWAGA
Często uważam, że jest to pomocne, gdy próbuję określić, w którym z moich plików startowych zsh należy umieścić elementy, aby sprawdzić pliki startowe zsh .
.zprofilema bliższe znaczenie .bash_profile, ponieważ obie są pozyskiwane tylko przez ich odpowiednie powłoki dla powłok logowania. .zshenvjest wykonywany dla wszystkich instancji programu zsh, niezależnie od tego, czy są to powłoki logowania, czy nie.
.zshenvnależy zdefiniować wszystkie zmienne środowiskowe. Zobacz tutaj
.bash_profilemusi robić po bashco .zshenvi .zprofile/.zloginrazem robić zsh. To łącze zapewnia dobre informacje o tym, co i gdzie należy się udać.
PATHw programie .zshenvpolega na tym, że można go później zastąpić, powiedzmy przez /etc/profile; zobacz zmienną PATH w .zshenv lub .zshrc .
Wiem, że to stare pytanie, ale ostatnio zaktualizowałem MacOs do Catalina, co zmieniło domyślną powłokę z bash na zsh.
Skończyło się na tym:
echo source ~/.bash_profile > ~/.zshenv && source ~/.zshenv
Aby mieć zsh źródło mojego oryginalnego pliku .bash_profile.
echo source ~/.bash_profile > ~/.zshenv
echotutaj jest ważne? Co to robi?
X > Yprzekazuj tylko to, co wyprowadził X. Bez echa nic nie jest wyświetlane.
Niedawno po aktualizacji do Catalina OS z Maca, domyślnie zmienia się na uruchomienie powłoki Z, która używa pliku zshrc jako zasobu powłoki Z, zwykle mieliśmy bash_profile w katalogu domowym użytkownika, rozwiązaniem jest po prostu
Otwórz nowe okno terminala i uruchom poprzedni alias / skrypt powinien działać bez zarzutu
Inną prostą alternatywą, aby kontynuować korzystanie z .bash_profile, jest dodanie tego pliku do pliku .zshrc:
dzięki temu prostemu rozwiązaniu możesz kontynuować dodawanie swojego .bash_prifile, jeśli chcesz zhs.
W Mac Catalina terminal używa zsh. Zamiast .bash_profile, dobrze jest mieć .zshenv i pisać tam swój skrypt.
Kiedy następnym razem otwierasz terminal, uruchamiane są skrypty wewnątrz .zshenv.