"inherit" Bash 完成的简单方法
Easy way to "inherit" Bash completion
我正在寻找一种简单的方法来 "inherit" Bash 从程序到脚本的完成函数。
假设有一个程序 foo
提供它自己的 Bash 完成,这样 $ foo sub<TAB>
完成到 $ foo subcommand
。现在我想编写一个脚本 foo-extra
,它采用与 foo
相同的参数,在调用 foo <arguments>
之前做一些额外的事情。使 foo-extra
脚本搭载在 foo
的完成函数上的最简单方法是什么?
您的 foo
使用某个函数完成(如果是标准的,它通常会在 /usr/share/bash-completion/completions/foo
中定义,并且可能会调用类似 _foo
的东西)。使函数成为完成函数的命令是:
complete -F _foo foo
您可以将相同的功能添加到任意命令:
source /usr/share/bash-completion/completions/foo
complete -F _foo foo-extra
我正在寻找一种简单的方法来 "inherit" Bash 从程序到脚本的完成函数。
假设有一个程序 foo
提供它自己的 Bash 完成,这样 $ foo sub<TAB>
完成到 $ foo subcommand
。现在我想编写一个脚本 foo-extra
,它采用与 foo
相同的参数,在调用 foo <arguments>
之前做一些额外的事情。使 foo-extra
脚本搭载在 foo
的完成函数上的最简单方法是什么?
您的 foo
使用某个函数完成(如果是标准的,它通常会在 /usr/share/bash-completion/completions/foo
中定义,并且可能会调用类似 _foo
的东西)。使函数成为完成函数的命令是:
complete -F _foo foo
您可以将相同的功能添加到任意命令:
source /usr/share/bash-completion/completions/foo
complete -F _foo foo-extra