我已经编写了一个可以与time
或timeout
进行比较的命令,因为它在行的开头用作任何其他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命令。
答案 0 :(得分:1)
根据我上面的评论,我已经回答了我自己的问题!
执行"complete -p | grep time"
后,我们可以看到该命令是如何做到的 - 您只需要按如下方式定义完成规则:
complete -o filenames -F _command mything
并将其放入一个名为/etc/bash_completion.d/mything
的空文件中。当您打开一个新的bash终端时,您应该发现您的mything
命令可以正常方式完成任何子命令。