【发布时间】:2019-12-22 00:08:02
【问题描述】:
当我在 .bash_profile 中设置环境变量时,每次重新启动终端时都需要执行“source”命令。我可以在哪里为终端和 GUI 应用程序全局设置这些设置?
我使用 iTerm2 Build 3.2.9,Macos Catalina Beta,
我的 bash_profile
export JAVA_HOME=`/usr/libexec/java_home`
export ANDROID_HOME=/Users/pavelrybakov/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools
export PATH=$JAVA_HOME/bin:$PATH
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
export PATH="/usr/local/bin:$PATH"
export PATH=/usr/local/Cellar/maven/3.6.1/bin:$PATH
export PATH="/Users/pavelrybakov/fuchsia/.jiri_root/bin:$PATH"
export PATH="/usr/local/opt/ncurses/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/ncurses/lib"
export CPPFLAGS="-I/usr/local/opt/ncurses/include"
ER:当我通过 iTerm 启动会话时,echo java_home(例如)显示正确的路径。
AR:当我通过 iTerm 启动会话时,echo java_home(例如)显示一个空白代码行。
【问题讨论】:
-
请澄清 - “当通过 iTerm 开始会话时” - 你得到了什么?
-
echo java_home将输出文字字符串java_home,而不是空行。您究竟在运行什么? (并且大小写很重要。)此外,iTerm2 的默认设置是为新会话启动登录 shell,它应该来自.bash_profile(如果bash是默认 shell),除非你也有一个.profile,而是来源。简而言之,有很多事情可能会影响您所观察的内容。 -
也就是说,Catalina 已将新用户的默认 shell 更改为
zsh,而不是bash。你还在运行bash吗? -
@chepner 是的,它是 zsh。如何切换到 bash?
-
@chepner
.bash_profile是第一个来源,而不是.profile。
标签: bash macos terminal environment-variables