bash / cygwin / $ PATH:我真的必须重启才能改变$ PATH吗?

时间:2009-07-14 00:45:45

标签: python bash path cygwin reboot

我想使用安装在cygwin下的Python而不是直接在WinXP下安装的Python,所以我编辑了〜/ .bashrc并获取了它。没有改变。我尝试了其他的东西,但我没有做任何改变$ PATH的事情。所以我重新启动了。啊哈;现在$ PATH已经改变为我想要的。

但是,任何人都可以解释为什么会发生这种情况?什么时候通过cygwin(和bash)对环境(及其变量)的更改只在重启后生效?

(这有什么方法可以运行铁路吗?)(这个问题不太可能赢得任何积分,但我很好奇,而且我也厌倦了涉及这方面没有帮助的文档。)

4 个答案:

答案 0 :(得分:3)

尝试:

PATH="${PATH}:${PYTHON}"; export PATH

或者:

export PATH="${PATH}:${PYTHON}"

引号会保留 在您的目录名称中包含的空格和换行符。我重复 “不要”

如果要更改当前环境和任何后续进程的路径,请使用与上述任一命令类似的内容;它们是等价的。

如果您想要在下次启动Bash时更改路径,请编辑~/.bashrc并添加以上内容之一(例如)或编辑您在那里找到的现有PATH设置命令。

如果您想影响当前环境和任何后续环境(即具有立即和“永久”影响),请编辑~/.bashrc并执行以下操作之一:键入显示的前两个表单之一上方的~/.bashrc文件来源。有时,你可能不想进行采购,例如,如果它会撤消你正在使用的一些临时事物,就像设置一些不同于~/.bashrc的其他变量将设置(重置)它们。

我认为你不需要担心哈希,除非你要么做一些严肃的重新安排或者为系统工具添加一些本地替代品。

答案 1 :(得分:2)

如果您希望更改是永久性的,则应修改正确的文件(在本例中为.bashrc)并执行以下操作之一:

  • 重新启动cygwin窗口
  • source .bashrc(这应该可行,即使不适合你)
  • 。 .bashrc(即点< space>< filename>)

但是,在使用BASH shell时默认使用.bashrc,因此如果您使用另一个shell(csh,ksh,zsh等),则修改.bashrc将不会反映您的更改。

答案 2 :(得分:1)

至少要尝试排除一些事情:

  1. 您是否从shell获得与以下相同的行为? (从我的cygwin上粘贴,按预期工作。)

    $ echo $PATH
    /usr/local/bin:/usr/bin:/bin
    
    $ export PATH=$PATH:/cygdrive/c/python/bin
    
    $ echo $PATH
    /usr/local/bin:/usr/bin:/bin:/cygdrive/c/python/bin
    
  2. 您的bashrc是否以与上述类似的方式设置PATH? (即第二个命令)。

  3. 您的bashrc是否包含“source”或“。”命令在哪里? (也许它正在寻找另一个覆盖你的PATH变量的文件。)

答案 3 :(得分:0)

修改路径变量后,您可能需要重新初始化bash的哈希值:

hash -r