首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cygwin有时会从Windows继承环境变量

问Cygwin有时会从Windows继承环境变量
EN

Stack Overflow用户
提问于 2011-07-15 22:20:23
回答 6查看 4.1K关注 0票数 0

如果我在Windows中设置环境变量CVSROOT,并给它一个类似cvsserver:/home/cvs的值,那么

1)打开Windows CMD shell,输入"echo %CVSROOT%",得到"cvsserver:home/cvs“

2)打开Cygwin bash shell,执行"echo $CVSROOT",得到"cvsserver:home/cvs“

3)从Linux,ssh到机器并执行"echo $CVSROOT",我什么也得不到。

如果希望ssh会话具有CVSROOT值,则需要将其插入到.bashrc中。

有没有什么方法可以让ssh会话也继承Windows的环境变量?

编辑:

4)在Linux中,执行

代码语言:javascript
复制
ssh machine "printenv CVSROOT"

在.bashrc中设置了环境变量后,我什么也得不到。在交互式提示符下,我得到了变量value,但这种方式没有给出任何结果。

EN

回答 6

Stack Overflow用户

发布于 2013-11-08 19:55:48

我在这里找到了一个很好的解决方案:http://www.smithii.com/node/44

它在注册表中查找系统变量,并在通过ssh打开的会话中设置变量。

然后,从ssh客户机(在连接到cygwin服务器时)调用这一小段脚本,如下所示: ssh $WINDOWSUSER@$WINDOWSBUILDSERVER“$CVSROOT /etc/profile;echo etc”

票数 2
EN

Stack Overflow用户

发布于 2011-07-18 20:52:38

好的,我已经弄明白了.

无论出于何种原因,bash shell都不会继承系统上设置的CVSROOT变量。我需要把这行放在

代码语言:javascript
复制
export CVSROOT=cvsserver:/home/cvs

添加到.bashrc和.bash_profile文件中。

在.bashrc文件中需要这一行,以便非交互式登录将获得CVSROOT变量。例如:

代码语言:javascript
复制
ssh machine "printenv CVSROOT"

在.bashrc文件中需要此行,以便CVSROOT存在。

在.bash_profile文件中需要这一行,以便交互式登录将获得CVSROOT变量。例如:

代码语言:javascript
复制
ssh machine
printenv CVSROOT
票数 1
EN

Stack Overflow用户

发布于 2013-08-16 17:20:42

如果你在windows机器上运行SSH服务(我假设你是这样的),而且它是通过Cygwin的。

该服务在启动时似乎会对环境变量进行快照,并且不会刷新它们。

重新启动服务应该就足够了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6708435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档