macOS Catalina 10.15(beta) - 为什么 ~/.bash_profile 不是我的 shell 的来源?

macOS Catalina 10.15(beta) - Why is ~/.bash_profile not sourced by my shell?

我想将我在行下方添加的环境变量设置为 ~/.bash_profile~/.profile 但它没有用。

export JBOSS_HOME=/Users/{USERNAME}/Desktop/jboss7

之后,退出终端,执行时再次打开终端echo $JBOSS_HOME,我什么也没得到。

Apple 已将默认 shell 更改为 zsh。因此,您必须重命名您的配置文件。 .bashrc 现在是 .zshrc.bash_profile 现在是 .zprofile

我创建了一个名为

的新文件

/usr/local/bin/mybash

其中包含包装器脚本:

/usr/local/bin/bash --init-file $HOME/.bashrc

我从 HomeBrew 安装了这个 local/bin/bash。

完整的事件序列

brew install bash
echo "/usr/local/bin/bash --init-file $HOME/.bashrc" > /usr/local/bin/mybash
chmod +x /usr/local/bin/mybash

然后我打开terminal.app [cmd-逗号]的设置。在 General 选项卡下,select Command (complete path)

的单选按钮

在文本框中将文本从 /bin/zsh/ 更改为 /usr/local/bin/bash

cp zprofile ~/.zprofile

添加到.zprofile:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

例如。通过 >vi .zprofile

完成

如果您出于某种原因(像我一样)不想 rename/move 您的 ~/.bash_profile 文件,您可以执行以下操作:

  1. 创建一个新文件~/.zprofile
  2. 在那里输入 source ~/.bash_profile
  3. 保存并关闭
  4. 运行 一个新的终端会话

将 bash 配置文件更改为 zsh 配置文件有效并获取它以查看实际效果。

vikas@Vikas-Kumar ~ % mv .bash_profile .zsh_profile
vikas@Vikas-Kumar ~ % source .zsh_profile

您可以创建一个符号 link 并保留您的 .bash_profile 文件:

ln -s .bash_profile .zsh_profile
source .zsh_profile

.bash_profile 中的任何更改都将反映在 .zsh_profile

关闭终端 window 后,您在 window 中设置的变量将不再可用。如果您希望变量的值在会话和所有终端 windows 中保持不变,您必须在 shell 启动脚本中设置它。有关修改 zsh shell 启动脚本以跨多个会话保留变量和其他设置的信息,请参阅 zsh man page.

的“调用”部分

您可以使用 ~/.zlogin 添加您的变量。

查看 this reference

您不需要更新文件,zsh 是 mac 的默认设置,将它放在终端中。例如:

export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools

您只需复制现有的 bash_profile 并将其命名为 zprofile 即可。

  • 运行 在终端中执行以下命令,您将在关闭和打开新终端后进行设置。

cp ~/.bash_profile ~/.zprofile

即使 os Catalina /bin/bash 免费提供,也不需要 brew。只需创建 .bash_profile 并在终端设置中将 shell 设置为 /bin/bash。它会自动找到您的 .bash_profile。 z-shell 不是 bash-shell 并且只需重命名即可在 most 例,但绝对不正确。