【问题标题】:Save macos bash_profile globally全局保存 macos bash_profile
【发布时间】: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


【解决方案1】:

你没有赋予你的操作系统风格。

有些口味在.bash_profile 中并不具体,而是在.bashrc 中查找。

您的系统可能就是这种情况。

检查您是否有$HOME/.bashrc 文件。如果你这样做了,你可能想在你的.bashrc 的顶部(在#!/bin/bash 下,或者它指向的任何地方)添加这样的东西,看看它是否有效:

if [ -f $HOME/.bash_profile ]
then
    . $HOME/.bash_profile
fi

.bash_profile 没有被执行,因为它没有被终端调用。这可能取决于操作系统或 shell,而您并没有真正给我们足够的信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 2017-03-27
    • 2014-12-13
    • 1970-01-01
    • 2015-12-16
    • 2010-11-02
    相关资源
    最近更新 更多