2

我在 Eclipse 中有一个自定义 Makefile 项目,虽然构建确实在 Cygwin shell 中运行......它似乎不是登录 shell(bash --login),因为它没有像运行cygwin.bat那样设置我的环境变量。

在 Eclipse 中,我可以在哪里更改 shell 命令,使其成为登录 shell?

4

1 回答 1

2

您使用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

作为用户环境变量。在此脚本中要做的最少的事情是将PATH设置为/etc/profile

PATH="/usr/local/bin:/usr/bin:${PATH}"

检查路径设置,/etc/profile因为它是由 Cygwin 的setup.exe创建的。您还可以从该脚本复制设置~/.bashrc或获取该脚本的来源。

希望这可以帮助。

于 2013-09-19T07:41:42.797 回答