我希望能够从 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 实现。