如果我在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中,执行
ssh machine "printenv CVSROOT"在.bashrc中设置了环境变量后,我什么也得不到。在交互式提示符下,我得到了变量value,但这种方式没有给出任何结果。
发布于 2013-11-08 19:55:48
我在这里找到了一个很好的解决方案:http://www.smithii.com/node/44
它在注册表中查找系统变量,并在通过ssh打开的会话中设置变量。
然后,从ssh客户机(在连接到cygwin服务器时)调用这一小段脚本,如下所示: ssh $WINDOWSUSER@$WINDOWSBUILDSERVER“$CVSROOT /etc/profile;echo etc”
发布于 2011-07-18 20:52:38
好的,我已经弄明白了.
无论出于何种原因,bash shell都不会继承系统上设置的CVSROOT变量。我需要把这行放在
export CVSROOT=cvsserver:/home/cvs添加到.bashrc和.bash_profile文件中。
在.bashrc文件中需要这一行,以便非交互式登录将获得CVSROOT变量。例如:
ssh machine "printenv CVSROOT"在.bashrc文件中需要此行,以便CVSROOT存在。
在.bash_profile文件中需要这一行,以便交互式登录将获得CVSROOT变量。例如:
ssh machine
printenv CVSROOT发布于 2013-08-16 17:20:42
如果你在windows机器上运行SSH服务(我假设你是这样的),而且它是通过Cygwin的。
该服务在启动时似乎会对环境变量进行快照,并且不会刷新它们。
重新启动服务应该就足够了。
https://stackoverflow.com/questions/6708435
复制相似问题