我在Eclipse中有一个自定义Makefile项目,虽然构建确实在Cygwin shell中运行...它似乎不是一个登录shell(bash --login
),因为它没有设置我的运行cygwin.bat
等环境变量。
在Eclipse中我可以更改shell命令以使其成为登录shell吗?
答案 0 :(得分:2)
bash --login 的实际目标是来自 / etc / profile 的设置。
在UNIX下,您通常只有一个登录shell,因此所有其他shell都会继承这些设置。在Windows下,任何Bash窗口都是一个isoloated登录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
复制设置或者输入此脚本。
希望这有帮助。