Is there anything in Zsh like .bash_profile?
Yes, it's called ~/.zshenv
.
Here's how I have $JAVA_HOME
set in ~/.zshenv
:
export JAVA_HOME="$(/usr/libexec/java_home)"
Keep in mind, however, that zsh is not bash, so just 'cause you have to source your .bash_profile
every time you open a terminal does not mean that you have to do that with zsh. With zsh, I only have to re-source my ~/.zshenv
when I make changes to it, and then only for terminals which are already open: new terminals should have already sourced my new and improved ~/.zshenv
.
NOTE
I often find it helpful, when trying to determine which of my zsh startup files I should place things in to consult zsh startup files.
A newer version of the documentation for startup files can be found here.
I know this is an old question, but I recently upgraded MacOs to Catalina which changed the default shell from bash to zsh.
I ended up doing this:
echo source ~/.bash_profile > ~/.zshenv && source ~/.zshenv
To have zsh source my original .bash_profile.
Other simple alternative to continue using your .bash_profile is add this file to your .zshrc file:
- Open your .zhsrc file > vim ~/.zshrc
- Add this line to your .zshrc file > source ~/.bash_profile
with this simple solution you can continue adding your .bash_prifile if you like zhs.
Adding .bash_profile
Recently, with the upgrade to macOS Catalina, the default shell changed to zsh, which uses ~/.zshrc
as the resource file.
We usually had ~/.bash_profile
inside user home directory the solution is to simply
- Open
~/.bash_profile
by runningvim ~/.bash_profile
- Open
~/.zshrc
by runningvim ~/.zshrc
- Copy the content of
~/.bash_profile
into~/.zshrc
Open a new terminal window and run your previous aliases/scripts, which should work flawlessly.