我在 Eclipse 中有一个自定义 Makefile 项目,虽然构建确实在 Cygwin shell 中运行...但它似乎不是登录 shell (bash --login
),因为它不是不像运行 cygwin.bat 那样设置我的环境变量。
在 Eclipse 中哪里可以更改 shell 命令以使其成为登录 shell?
请您参考如下方法:
您使用 bash --login 的实际目标是 /etc/profile 中的设置。
在 UNIX 下,您通常只有一个登录 shell,因此所有其他 shell 都会继承这些设置。在 Windows 下,任何 Bash 窗口都是一个孤立的登录 shell,这会导致从仅作为命令处理器运行 bash 的工具运行 Bash 时缺少环境设置。
我在使用 Emacs 编译功能时也遇到了类似的问题。 Windows下最好的解决方案是将环境变量BASH_ENV
设置为脚本。 Bash 将在没有 -i 或 --login 启动时执行此脚本,因此 /etc/profile 不会运行。因此,该脚本将为非交互式、非登录 shell 设置 Bash。
示例:
BASH_ENV=%USERPROFILE%\.bash_env
作为用户环境变量。在此脚本中要做的最少的事情就是按照 /etc/profile 中的方式设置 PATH:
PATH="/usr/local/bin:/usr/bin:${PATH}"
检查 /etc/profile
中的路径设置,因为它是由 Cygwin 的 setup.exe 创建的。您还可以从 ~/.bashrc
复制设置或获取此脚本。
希望这有帮助。