【问题标题】:env command shows 3 times same pathenv 命令显示 3 次相同的路径
【发布时间】:2014-06-22 01:16:15
【问题描述】:

当我运行 env 时,它在 PATH 下显示 3 次 /usr/binPATH 标题下的每条路径都相同。
例如 - 我的 scala bin 目录显示 3 次。

但是,在我的 .bash_profile 中,它只写了一次。它也不在 .bashrc 中。我需要将这 3 次出现为 1,因为即使我在 .bash_profile 的 PATH 下删除了一些路径,它仍然显示 2 次,这意味着路径仍然设置。

echo $PATH 显示相同的东西.
而且,如果重要的话,我正在使用 macosx。

【问题讨论】:

  • 那么……这有什么问题?和编程有什么关系?应该是关于 SuperUser 的问题。
  • @DarkDust 好的。我会把它放在超级用户中。对于这有多重要 - 比如说我更新了我的 scala 版本并导出了它的路径。现在我有两个具有 scala 的 bin 目录。因此,如果我运行 scala,我将依赖系统来解释它将采用哪一个。在我的初步检查中,它采用了最新的,但其他依赖于旧版本的程序都失败了。我推断这可能是个问题。我在这里可能错了,但我需要确定这不是问题。

标签: command-line path osx-lion env


【解决方案1】:

有很多文件可以设置 PATH,通常添加到之前定义的 $PATH 中(以免错过任何重要的目录)。

例如参见http://linuxfromscratch.org/blfs/view/svn/postlfs/profile.html 的指南

您可能希望看到: /etc/profiles /etc/bashrc ~/.bash_profile ~/.bashrc

并且小心:不要编辑错误的文件或将“仅登录的东西”放入“用于非登录 shell”的文件中,反之亦然。

引用上面链接中的 /etc/profile 示例,作者 James Robertson ,您可以看到每个文件的含义:

  • /etc/profile:系统范围的环境变量和启动程序。
  • /etc/bashrc :系统范围的别名和函数应该放在 /etc/bashrc。
  • ~/.bash_profile :个人环境变量和启动程序应该进入~/.bash_profile。
  • ~/.bashrc : 个人别名和函数应该进入 ~/.bashrc。

(警告:更改 /etc/profile 必须小心。它用于启动的许多低级阶段,并且几乎被操作系统中运行的所有东西所继承,所以要小心,一个小的“unhamrful”更改可能会发生严重破坏您的系统)

【讨论】:

    【解决方案2】:

    好的..所以我找到了解决方案。
    这就是我正在做的事情:-
    1) vi ~/.bash_profile
    2) 进行更改
    3) source ~/.bash_profile 以查看这些更改的效果。

    似乎对于每个编辑和后续源命令,都暂时保留在当前会话中。
    因此,如果我进行了 3 次更改并随后使用 source 命令,如果我这样做,它会显示 3 次相同的路径echo $PATHenv。 关闭终端并重新启动它会使一切恢复正常。

    所以,这只是重新启动终端的问题!

    澄清:- 不同平台的表现可能不同。我发现 macosx-10.7 是这样工作的。

    【讨论】:

    • 相反,.bash_profile 中的代码不会避免添加重复路径。这很好,但它并不能推广到 .bash_profile 不这样工作的人。
    • @tripleee ,我还没有在其他平台上检查过。我正在使用 macox-10.7,它在这里工作。我会正确标记这个问题。这种行为并没有错。或者可能是我一开始没有正确理解 source 命令的工作原理......也许我必须更仔细地查看 source 命令的工作原理......
    • @tripleee , .bash_profile 中没有我写的代码。其标准代码仅由苹果提供..
    猜你喜欢
    • 1970-01-01
    • 2014-05-13
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    • 2017-05-07
    • 2017-10-11
    相关资源
    最近更新 更多