小编Vir*_*ato的帖子

为什么 ~/.bash_profile 在打开终端时没有得到来源?

问题

我有一个 Ubuntu 11.04 虚拟机,我想设置我的 Java 开发环境。我做了如下

  1. sudo apt-get install openjdk-6-jdk
  2. 将以下条目添加到~/.bash_profile

    export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
    
    export PATH=$PATH:$JAVA_HOME/bin
    
    Run Code Online (Sandbox Code Playgroud)
  3. 保存更改并退出

  4. 再次打开终端并输入以下内容

    echo $JAVA_HOME   (blank)
    echo $PATH        (displayed, but not the JAVA_HOME value)
    
    Run Code Online (Sandbox Code Playgroud)
  5. 什么也没发生,就像 JAVA_HOME 的导出和它添加到 PATH 从未完成一样。

解决方案

我不得不去~/.bashrc并在文件末尾添加以下条目

#Source bash_profile to set JAVA_HOME and add it to the PATH because for some reason is not being picked up
. ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

问题

  1. 为什么我必须这样做?我认为 bash_profile、bash_login 或 profile 在没有这两个的情况下会在 bashrc 之前首先执行。
  2. 在这种情况下,我的终端是非登录shell 吗?
  3. 如果是这样,为什么在终端之后执行 su 并输入密码时,它没有执行我还设置了上述导出的配置文件?

bash .profile environment-variables bashrc source

209
推荐指数
5
解决办法
36万
查看次数

标签 统计

.profile ×1

bash ×1

bashrc ×1

environment-variables ×1

source ×1