如何在 Eclipse 中打开 cygwin 并执行 bash?

How to open cygwin & execute bash in Eclipse?

我正在尝试在 Eclipse 中构建我的自定义命令。 这是我正在使用的 Eclipse 插件:https://marketplace.eclipse.org/content/startexplorer

看起来像这样(link 图片):

Custom commands in Eclipse

我需要自定义命令中的 eclipse 变量:

${resource_loc} , ${selected_resource_loc} , ${workspace_loc} , etc...

应该是这样的:

D:\cygwin64\bin\mintty.exe /bin/bash -l -c "cd ${workspace_loc}"

但是 mintty 会立即关闭这个 window。我需要根据 eclipse 变量 执行命令进入 bash 交互模式,而不关闭 window。

要创建一个 StartExplorer 自定义命令,它会打开一个 Cygwin 终端并 在所选的文件系统位置启动交互式 Bash shell 资源,请按照下列步骤操作:

  1. 确保安装chere Cygwin 包;
  2. 安装StartExplorer Eclipse 插件;
  3. 在插件 StartExplorer 的 Eclipse 首选项中,创建一个新的自定义 命令:
    • 命令:D:\cygwin64\bin\mintty.exe -e /bin/xhere /bin/bash "${selected_resource_loc}"
    • 为资源启用:yes
    • 资源菜单名称:Cygwin Bash Here
    • 资源类型:Folders

作为第 2 步和第 3 步的替代方案,如果您不关心上下文菜单条目,则不 需要安装 StartExplorer 插件。 Eclipse Extenal Tools Configuration 标准功能就可以了。

Run > Extenal Tools Configuration 中创建一个新程序:

  • 姓名:Cygwin Bash Here
  • 位置:D:\cygwin64\bin\mintty.exe
  • 参数:-e /bin/xhere /bin/bash "${selected_resource_loc}"

基本上,xhere 脚本(chere 包的一部分)执行以下步骤:

  1. 指示登录 shell 不是 cd $HOMEexport CHERE_INVOKING=true,在 /etc/profile 中检查);
  2. 更改为作为第二个参数传递的目录 (cd "");
  3. 执行作为第一个参数传递的 shell 作为登录 shell (exec -l ).

注意:如果将/bin/bash替换为/etc/passwd,则使用从/etc/passwd读取的当前用户登录shell而不是 bash.