Za każdym razem, gdy otwieram terminal, muszę .bash_profile
włączyć źródło, aby włączyć $JAVA_HOME
lub inne zmienne.
Odpowiedzi:
Tak, nazywa się ~/.zshenv
.
Oto jak $JAVA_HOME
ustawił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_profile
kod 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 .
.zprofile
ma bliższe znaczenie .bash_profile
, ponieważ obie są pozyskiwane tylko przez ich odpowiednie powłoki dla powłok logowania. .zshenv
jest wykonywany dla wszystkich instancji programu zsh
, niezależnie od tego, czy są to powłoki logowania, czy nie.
.zshenv
należy zdefiniować wszystkie zmienne środowiskowe. Zobacz tutaj
.bash_profile
musi robić po bash
co .zshenv
i .zprofile/.zlogin
razem robić zsh
. To łącze zapewnia dobre informacje o tym, co i gdzie należy się udać.
PATH
w programie .zshenv
polega 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
echo
tutaj jest ważne? Co to robi?
X > Y
przekazuj 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.