我需要在 cygwin 环境之外运行 cygwin shell 脚本而不更改工作目录。
如果我只是运行\path\to\bash.exe -c command
,那么路径设置就不正确,并且找不到 cygwin 程序。
如果我使用该--login
选项,bash
则会正确设置路径,但也会更改为我的主目录。
我应该使用哪些选项来启动 bash 以保留当前工作目录并找到 cygwin 可执行文件?
答案1
事实证明,cygwin 默认/etc/profile
会检查名为的环境变量CHERE_INVOKING
,如果设置了,则会禁止更改目录。
所以
set CHERE_INVOKING=1
\path\to\bash.exe -l -c command
具有所需的行为。