да, он автоматически загружается каждый раз при открытии терминала?
i3wangyi
Ответы:
117
Да, это называется ~/.zshenv.
Вот как я $JAVA_HOMEустроился ~/.zshenv:
export JAVA_HOME="$(/usr/libexec/java_home)"
Однако имейте в виду, что zsh - это не bash, поэтому то, что вам нужно исходить .bash_profileкаждый раз, когда вы открываете терминал, не означает, что вы должны делать это с помощью zsh. С zsh мне нужно повторно исходить только ~/.zshenvтогда, когда я вношу в него изменения , и то только для терминалов, которые уже открыты : новые терминалы должны были уже получить мои новые и улучшенные ~/.zshenv.
Фактически, .zprofileэто ближе по смыслу к тому .bash_profile, что оба они исходят только от своих соответствующих оболочек для оболочек входа. .zshenvвыполняется для всех экземпляров zsh, независимо от того, являются они оболочками входа или нет.
chepner
6
@chepner .zshenv- это место, где должны быть определены все переменные среды. Смотрите здесь
Алексей Магура
3
Согласовано; .bash_profileдолжен делать для bashчего .zshenvи .zprofile/.zloginвместе делать для zsh. Эта ссылка дает хорошую информацию о том, что и куда нужно делать.
chepner
@Alexej Проблема с определением PATHin .zshenvзаключается в том, что позже его можно будет переопределить, скажем, с помощью /etc/profile; см. переменную PATH в .zshenv или .zshrc .
legends2k
38
Я знаю, что это старый вопрос, но я недавно обновил MacOs до Catalina, который изменил оболочку по умолчанию с bash на zsh.
@QASam, здесь обязательно нужно эхо, X > Yпередавать только то, что выводит X. Без эха ничего не выводится.
Джеймс ЛавЛеди
3
Недавно с обновлением до Catalina OS с Mac, по умолчанию он изменяется для запуска Z-оболочки, которая использует файл zshrc в качестве ресурса Z-оболочки, у нас обычно был bash_profile внутри домашнего каталога пользователя, решение состоит в том, чтобы просто
скопируйте содержимое из bash_profile, открыв> vim ~ / .bash_profile
создать zshrc с помощью> vim ~ / .zshrc
скопировать содержимое bash_profile в zsrc
Откройте новое окно терминала и запустите свой предыдущий псевдоним / скрипт должен работать безупречно.
Ответы:
Да, это называется
~/.zshenv
.Вот как я
$JAVA_HOME
устроился~/.zshenv
:export JAVA_HOME="$(/usr/libexec/java_home)"
Однако имейте в виду, что zsh - это не bash, поэтому то, что вам нужно исходить
.bash_profile
каждый раз, когда вы открываете терминал, не означает, что вы должны делать это с помощью zsh. С zsh мне нужно повторно исходить только~/.zshenv
тогда, когда я вношу в него изменения , и то только для терминалов, которые уже открыты : новые терминалы должны были уже получить мои новые и улучшенные~/.zshenv
.ЗАМЕТКА
Я часто нахожу это полезным, когда пытаюсь определить, в какие из моих файлов запуска zsh мне следует поместить элементы, чтобы просмотреть файлы запуска zsh .
источник
.zprofile
это ближе по смыслу к тому.bash_profile
, что оба они исходят только от своих соответствующих оболочек для оболочек входа..zshenv
выполняется для всех экземпляровzsh
, независимо от того, являются они оболочками входа или нет..zshenv
- это место, где должны быть определены все переменные среды. Смотрите здесь.bash_profile
должен делать дляbash
чего.zshenv
и.zprofile/.zlogin
вместе делать дляzsh
. Эта ссылка дает хорошую информацию о том, что и куда нужно делать.PATH
in.zshenv
заключается в том, что позже его можно будет переопределить, скажем, с помощью/etc/profile
; см. переменную PATH в .zshenv или .zshrc .Я знаю, что это старый вопрос, но я недавно обновил MacOs до Catalina, который изменил оболочку по умолчанию с bash на zsh.
В итоге я сделал это:
echo source ~/.bash_profile > ~/.zshenv && source ~/.zshenv
Чтобы получить исходный код zsh, мой исходный .bash_profile.
источник
echo source ~/.bash_profile > ~/.zshenv
echo
Здесь важно использование ? Что это значит?X > Y
передавать только то, что выводит X. Без эха ничего не выводится.Недавно с обновлением до Catalina OS с Mac, по умолчанию он изменяется для запуска Z-оболочки, которая использует файл zshrc в качестве ресурса Z-оболочки, у нас обычно был bash_profile внутри домашнего каталога пользователя, решение состоит в том, чтобы просто
Откройте новое окно терминала и запустите свой предыдущий псевдоним / скрипт должен работать безупречно.
источник
Другой простой альтернативой продолжению использования вашего .bash_profile является добавление этого файла в ваш .zshrc файл:
с помощью этого простого решения вы можете продолжить добавление вашего .bash_prifile, если вам нравится zhs.
Добавление .bash_profile
источник
В Mac Catalina терминал использует zsh. Вместо .bash_profile лучше иметь .zshenv и писать там свой скрипт.
Когда вы каждый раз открываете терминал, скрипты внутри .zshenv запускаются.
источник