如何将子命令传递回bash完成?

时间:2014-03-14 10:02:56

标签: linux bash bash-completion

我已经编写了一个可以与timetimeout进行比较的命令,因为它在行的开头用作任何其他bash命令的前缀。我的问题是,如何说服我的bash完成脚本/规则运行子命令的正常完成 - 就像我的前缀命令不存在时一样?

E.g。目前的情况是:

$ svn [tab]     - lists the svn commands

$ mything svn [tab]  - my completion needs to hand-over to svn's completion

但上面示例中的svn可能几乎是任何 bash命令。

1 个答案:

答案 0 :(得分:1)

根据我上面的评论,我已经回答了我自己的问题!

执行"complete -p | grep time"后,我们可以看到该命令是如何做到的 - 您只需要按如下方式定义完成规则:

complete -o filenames -F _command mything

并将其放入一个名为/etc/bash_completion.d/mything的空文件中。当您打开一个新的bash终端时,您应该发现您的mything命令可以正常方式完成任何子命令。