2011-06-22 51 views
15

在linux下我会去:如何在cygwin中设置环境变量?

setenv -p MYVAR "somevalue" 

但是,这似乎并没有在Cygwin的工作。

+0

请详细说明:你在使用什么外壳? – amphetamachine

+0

'echo $ SHELL'让我回到/ bin/sh - google告诉我这是Bourne shell。 – BeeBand

+0

好的 - 我明白了 - 对于Bourne shell来说,它是VAR =值。 – BeeBand

回答

22

默认情况下,Cygwin运行的是Bourne shellBash,因此设置变量的命令是不同的。这是你需要的代码:

export MYVAR="somevalue" 

export部分让壳知道它是一个环境变量,而不是一个局部变量。

如果你在你的home目录键入ls -a,你应该会看到一些或所有的下列文件:

.bashrc 
.bash_profile 
.profile 

.bash_profile是为登录shell执行,.bashrc是交互式非登录shell执行。为了最简单地确保环境变量始终设置,打开.bash_profile,并添加文字:

export MYVAR="somevalue" 

您与壳然后执行.bash_profile每次启动时,它会运行此命令。然后,您将始终可以访问MYVAR变量。如果您没有export变量,则只能在您的.bash_profile文件中访问。

您可以检查这个变量是由它的价值打印到外壳定义:

echo $MYVAR 

您可以删除(未设置)与变量:

unset $MYVAR 

上壳配置文件简短的话

另外,关于.bashrc vs .bash_profile.profile,请参阅以下答案:

对于配置的简单起见,我建议从.bash_profile采购的.bashrc文件。这种加入.bash_profile

if [ -f ${HOME}/.bashrc ]; then 
    source ${HOME}/.bashrc 
fi 

这将加载.bashrc.bash_profile

如果你这样做,你可以改为把下面的行.bashrc,如果你想:

export MYVAR="somevalue" 
+0

MYVAR在我下次启动cygwin时还会在那里吗? – BeeBand

+1

@BeeBand我刚刚更新了我的答案。如果只在shell中输入命令,则直到退出shell为止。如果你把它放在配置文件中,每次使用shell时都会有它。如果你修改你的配置文件并且不重新启动你的shell,你可以输入'〜/ .bashrc'来执行配置文件而不用重新启动。 – dbmikus

+1

@dbmikus - 你也可以补充一点,你可以像这样访问环境变量的值 - “$ MYVAR”。要查看变量的值,请输入'echo $ MYVAR'。 – Steam

2

建立在cygwin环境变量的最佳方法是创建一个bash的个人资料,并执行该配置文件每次登录并运行shell。

在我的。在.bash_profile文件,这是我的设置有

JAVA_HOME = C:/Program Files/Java/jdk1.7.0_51 
export JAVA_HOME 
export PATH=$PATH:$JAVA_HOME/bin 

一旦运行bash中,检查出回声$ JAVA_HOME,你应该看到的路径作为输出。