当通过 SSH 进入 cygwin 时,如何获取“桌面”cmd.exe 子 shell 环境?

当通过 SSH 进入 cygwin 时,如何获取“桌面”cmd.exe 子 shell 环境?

我已经在 cygwin 下成功配置了 SSH,因此我可以通过 SSH 进入我的 Windows 用户帐户并进入 cygwin 中的 bash shell。这太棒了。

但是,我有一个想在此环境中运行的 Python 程序(我将运行 Windows,而不是 cygwin Python),它需要许多标准 Windows 环境变量可用。但是,如果我从 cygwin bash shell 中启动 cmd.exe,我会得到一个 cmd.exe 环境,其中填充了 cygwin 风格的值(MANPATH、LOGNAME)和 windows 风格的环境变量的子集:例如,它有 ALLUSERSPROFILE 和 COMPUTERNAME,但是如果我从 Windows 桌面启动命令提示符窗口,通常会看到的许多变量都缺失了:PROCESSOR_ARCHITECTURE、NUMBER_OF_PROCESSORS 等。

我想从 SSH 会话 (SCons) 运行的程序依赖于这些值和其他几个值。有没有办法在 SSH 会话中将 cmd.exe 作为子 shell 启动,从而获得类似“从桌面启动的命令提示符”的环境?

我非常不想自己明确设置所有可能需要的值,因为这样的解决方案非常脆弱。我正在寻找一种自动机制。

是否有任何机制可以让我从 cygwin SSH 会话中获取“桌面 cmd.exe 环境”?

答案1

我认为您缺少的环境变量是您的用户变量。默认情况下,Cygwin 仅在通过 SSH 启动 shell 时导入系统变量。您可以尝试此处答案中链接的解决方案让 Cygwin 在通过 SSH 启动时导入您的用户变量。

相关内容