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

2024-05-13 08:09:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用安装在cygwin下的Python,而不是直接安装在WinXP下的Python,所以我编辑了~/.bashrc并将其作为源代码。什么都没变。我试过其他的方法,但是没有任何改变。所以我重新启动了。啊哈;现在$PATH变成了我想要的。

但是,有人能解释为什么会这样吗?通过cygwin(和bash)对环境(及其变量)所做的更改何时仅在重新启动后生效?

(这有办法经营铁路吗?)(这个问题不太可能赢得任何分数,但我很好奇,我也厌倦了在这一点上没有帮助的文档。)


Tags: path方法文档bash编辑环境源代码分数
3条回答

至少有几件事需要尝试和排除:

  1. 你的行为和下面的一样吗?(粘贴自我的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设置路径的方式与上面的类似吗?(即第二个命令)。

  3. bashrc是否包含“source”或“.”命令?(可能它正在寻找另一个覆盖您的路径变量的文件。)

尝试:

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

或:

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

引号保留目录名中没有的空格和换行符。我重复一遍“不要”。

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

如果要在下次启动Bash时更改路径,请编辑~/.bashrc,然后添加上面的一个(例如)或编辑现有的PATH设置命令。

如果要同时影响当前环境和任何后续环境(即具有立即和“永久”影响),请编辑~/.bashrc,然后执行以下操作之一:键入上面显示的前两个表单之一或源文件~/.bashrc。有时,您可能不想执行寻源,例如,如果它将撤消您正在使用的某些临时任务like将一些其他变量设置为不同于~/.bashrc将它们设置(重置)为的值。

我不认为您需要担心散列,除非您正在做一些认真的重新排列或添加一些系统实用程序的本地替换。

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

  • 重新启动cygwin窗口
  • source.bashrc(这应该有效,即使不适合您)
  • 。bashrc(即dot<;space>;<;filename>;)

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

相关问题 更多 >