启动 cygwin bash.exe 而不继承 windows home

启动 cygwin bash.exe 而不继承 windows home

我希望能够从 CMD 在 cygwin 环境中运行,但运行时C:\cygwin64\bin\bash.exe -l -i我的主页被设置为 windows 主页。据我所知,bash.exe 从运行它的 CMD 继承了环境,而我不希望这样。当我使用快捷方式运行桌面图标时,C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -我得到了正确的主页/home/MY_USERNAME,而使用 bash.exe 时,我得到了/cygdrive/c/Users/MY_USERNAME

我该怎么做才能使 bash.exe 在与 mintty.exe 相同的环境下打开?我需要它在 cygwin 中通过 ssh 工作。

答案1

直接运行 CygWin 命令(例如bash或 )rsync也可以,但这不是必须的。它不打算这样做。

如果你想干净地启动 CygWin,你必须运行Cygwin.bat。默认位置是:

C:\cygwin\Cygwin.bat
C:\cygwin64\Cygwin.bat

我个人使用该文件在执行.bash_profile时启动一个 bash 脚本。Cygwin.bat

此文件必须位于您的 CygWin 主目录中。运行Cygwin.bat一次,它将自动创建您的主目录和一些默认文件。

C:\cygwin\home\username
C:\cygwin64\home\username

代替username

.bash_profile在最后添加这个:

if [[ -v MY_BASH_SCRIPT ]]; then
  source "$MY_BASH_SCRIPT"
fi

MY_BASH_SCRIPT现在,您可以通过在执行之前设置环境变量将路径传递给 bash 脚本Cygwin.bat

在 Windows 命令行中,您可以这样做:

set MY_BASH_SCRIPT=/cygdrive/C/...

在 PowerShell 中,你可以这样做:

$Env:MY_BASH_SCRIPT = "/cygdrive/C/..."

设置完成后,使用起来非常简单。只需设置MY_BASH_SCRIPT环境变量,然后运行Cygwin.bat。这可以通过批处理文件实现,也可以通过 PowerShell 实现。

相关内容