我正在寻找一种轻松的方式来继承" Bash完成功能从程序到脚本。
假设某个程序foo
提供了自己的Bash完成功能,以便$ foo sub<TAB>
完成$ foo subcommand
。现在我想编写一个脚本foo-extra
,它接受与foo
相同的参数,在调用foo <arguments>
之前做一些额外的事情。在foo-extra
完成功能上使foo
脚本捎带的最简单方法是什么?
答案 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