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

Bee*_*and 19 cygwin

在linux中我会去:

setenv -p MYVAR "somevalue"
Run Code Online (Sandbox Code Playgroud)

但这似乎不适用于cygwin.

dbm*_*kus 27

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

export MYVAR="somevalue"
Run Code Online (Sandbox Code Playgroud)

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

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

.bashrc
.bash_profile
.profile
Run Code Online (Sandbox Code Playgroud)

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

export MYVAR="somevalue"
Run Code Online (Sandbox Code Playgroud)

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

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

echo $MYVAR
Run Code Online (Sandbox Code Playgroud)

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

unset $MYVAR
Run Code Online (Sandbox Code Playgroud)

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

另外,关于.bashrcvs .bash_profilevs. .profile,请看这些答案:

为简化配置,我建议您.bashrc从中获取文件.bash_profile.将此添加到.bash_profile:

if [ -f ${HOME}/.bashrc ]; then
   source ${HOME}/.bashrc
fi
Run Code Online (Sandbox Code Playgroud)

这将加载.bashrc.bash_profile.

如果您这样做,您可以改为将以下行放入.bashrc:

export MYVAR="somevalue"
Run Code Online (Sandbox Code Playgroud)