简单的方式继承"继承" Bash完成

时间:2015-07-08 01:33:07

标签: bash completion

我正在寻找一种轻松的方式来继承" Bash完成功能从程序到脚本。

假设某个程序foo提供了自己的Bash完成功能,以便$ foo sub<TAB>完成$ foo subcommand。现在我想编写一个脚本foo-extra,它接受​​与foo相同的参数,在调用foo <arguments>之前做一些额外的事情。在foo-extra完成功能上使foo脚本捎带的最简单方法是什么?

1 个答案:

答案 0 :(得分:5)

您的foo使用某个函数完成(如果是标准函数,通常会在/usr/share/bash-completion/completions/foo中定义,可能会调用_foo之类的函数)。使函数成为完成函数的命令是:

complete -F _foo foo

您可以将相同的功能加入任意命令:

source /usr/share/bash-completion/completions/foo
complete -F _foo foo-extra