如何在cygwin中设置环境变量?

时间:2011-06-22 18:12:49

标签: cygwin

在linux中我会去:

setenv -p MYVAR "somevalue"

但这似乎不适用于cygwin。

2 个答案:

答案 0 :(得分:26)

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

export MYVAR="somevalue"

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

如果在主目录中键入ls -a,则应该会看到以下部分或全部文件:

.bashrc
.bash_profile
.profile
对登录shell执行

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

export MYVAR="somevalue"

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

您可以通过将其值打印到shell来检查此变量是否已定义:

echo $MYVAR

您可以使用以下命令删除(取消设置)变量:

unset $MYVAR

关于shell配置文件的简短说明

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

为简化配置,我建议您从.bashrc采购.bash_profile文件。将其添加到.bash_profile

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

这将从.bashrc加载.bash_profile

如果您这样做,如果您愿意,可以将以下行放在.bashrc中:

export MYVAR="somevalue"

答案 1 :(得分: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后,请查看echo $ JAVA_HOME,您应该将路径视为输出。