在linux中我会去:
setenv -p MYVAR "somevalue"
但这似乎不适用于cygwin。
答案 0 :(得分:26)
默认情况下,Cygwin正在运行Bourne shell或Bash,因此设置变量的命令是不同的。这是您需要的代码:
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
另外,关于.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,您应该将路径视为输出。