2009-07-14 50 views
5

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

但是,谁能解释为什么会发生这种情况?什么时候通过cygwin(和bash)改变环境(及其变量)才会在重新启动后生效? (这是否有办法运行铁路?)(这个问题不可能赢得任何分数,但我很好奇,而且我也厌倦了通过文档进行交流,这在这一点上没有帮助。 )

+0

你用什么确切的命令来改变$ PATH? – 2009-07-14 00:52:08

+0

我尝试了几种方法。编辑的〜/ .bashrc: PYTHON =的/ usr /斌/ python.exe代替/ cygdrive/C/Python中的/ etc /等 PATH = $ {PYTHON}:$ {PATH} 然后%源./ bashrc 当这种情况不起作用时,我尝试从cmdline修改$ {PAth},甚至将其清除并重建它:没有效果。 – behindthefall 2009-07-14 01:08:36

回答

0

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

hash -r 
+0

bash的哈希?嗯。在Sun 3. IIRC上的'rehash'回忆。但是我认为'source .bashrc'照顾到了,不是吗? – behindthefall 2009-07-14 01:00:06

+1

rehash是tcsh。哈希-r是为bash – 2009-07-14 19:24:17

3

尝试:

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

或者:

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

引号保留空间和换行,你在你的目录名。我重复“不要”

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

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

如果你想同时影响当前的环境和任何后续的人(即具有立即和“永久性”的影响),编辑~/.bashrc并执行下列操作之一:类以上所示的第一两种形式之一或来源~/.bashrc文件。有时候,你可能不想采购,例如,如果它会撤销你目前正在使用的一些临时性的事情,就像其他变量的设置不同于~/.bashrc将设置(重置)它们。

我不认为你需要担心散列,除非你要么做一些严重的重新安排或添加一些本地替代系统实用程序。

+0

好吧,如果我需要更多的证据,这表明我是如何生病放松bash。我需要做什么?源,哈希和导出所有的时间? – behindthefall 2009-07-14 01:20:11

2

如果你希望你的变化是永久性的,你应该修改适当的文件(的.bashrc在这种情况下),并执行下列操作之一:

  • 重启cygwin的窗口
  • 源的.bashrc (这应该工作,即使不适合你)
  • 。 .bashrc中(即点<空间> <文件名>)

然而,。在使用BASH shell时默认使用bashrc,所以如果你使用的是另一个shell(csh,ksh,zsh等),那么你的修改不会被修改.bashrc所反映。

1

一对夫妇的事情,试图至少排除:

  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设置PATH以类似的方式上面? (即第二个命令)。

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

相关问题