强制bash完成以使用脚本提供的选项

强制bash完成以使用脚本提供的选项,bash,autocomplete,Bash,Autocomplete,[编辑:看起来这可能是我的OS X 10.9.5实现中的一个bug,它使用bash 3.2.51。确认它在Linux和bash 4.2.25中工作正常] 我想知道是否有人知道这个bash完成行为的解决方法。举例说明: 创建包含以下代码的文件dummycompleter.sh: 运行此命令将虚拟完成脚本链接到“mycomp”命令 完成-C.“/dummycompleter.sh”mycomp 通过键入mycopc并按TAB 麦考霉素aa 一切正常。现在尝试键入mycopccc 麦可马克 这是出乎意

[编辑:看起来这可能是我的OS X 10.9.5实现中的一个bug,它使用bash 3.2.51。确认它在Linux和bash 4.2.25中工作正常]

我想知道是否有人知道这个bash完成行为的解决方法。举例说明:

  • 创建包含以下代码的文件dummycompleter.sh:
  • 运行此命令将虚拟完成脚本链接到“mycomp”命令
  • 完成-C.“/dummycompleter.sh”mycomp

  • 通过键入
    mycopc
    并按
    TAB
  • 麦考霉素aa

    一切正常。现在尝试键入
    mycopccc

    麦可马克

    这是出乎意料的!“cc”不是任何完成选项的子集


    我如何才能绕过这个行为来使用我的完成选项,它可能与输入的文本无关(很像bash的原生ls completion没有显示其文件建议的完整路径)?

    对我有效:我得到了“mycop aa”,这是bash版本4.3.11(1)(Ubuntu 14.10)最后一次测试的结果。这可能是终端更新的问题吗?假设您实际定义mycomp:
    mycomp(){echo“$@”}
    ,然后执行
    mycompccc
    测试并点击返回键。它是否回音
    cc
    echo "aaa"
    echo "aab"