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

时间:2016-02-14 13:25:52

标签: eclipse cygwin mintty

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

看起来像这样(链接到图片):

Custom commands in Eclipse

我需要在自定义命令中使用eclipse变量:

StringComparsion.Ordinal

它应该是这样的:

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

但是mintty会立即关闭这个窗口。我需要执行基于eclipse变量的命令转到bash交互模式,而不关闭窗口。

1 个答案:

答案 0 :(得分:2)

创建一个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
  4. 除了步骤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 $HOME export CHERE_INVOKING=true/etc/profile中已检查;
    2. 更改为作为第二个参数传递的目录(cd "$2");
    3. 执行作为第一个参数传递的shell作为登录shell(exec -l $1)。
    4. 注意:如果您将/bin/bash替换为/etc/passwd,则会使用从/etc/passwd读取的当前用户的登录shell而不是{{1} }}