36 bash
我有cooltool
带有选项列表的自定义控制台实用程序
fooOption
barOption
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能通过按 bashtab
键来自动完成选项?
我的意思是用户输入
$ ./cooltool foo_
Run Code Online (Sandbox Code Playgroud)
然后按下tab
。进而
$ ./cooltool fooOption _
Run Code Online (Sandbox Code Playgroud)
出现了。
dog*_*ane 44
最简单的方法是将以下内容添加到您的 .bashrc 中。
_cooltool()
{
local cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=( $(compgen -W "fooOption barOption" -- $cur) )
}
complete -F _cooltool cooltool
Run Code Online (Sandbox Code Playgroud)
无论何时键入cooltool f[TAB][TAB]
,_cooltool()
都会调用该函数。它将计算出您当前的部分单词是什么,然后计算compgen
出哪些选项匹配。这些存储在一个名为的数组中COMPREPLY
,然后显示出来。查看man complete
和man compgen
了解详情。
对于一个不错的教程,请查看:编写自己的 Bash 完成函数
归档时间: |
|
查看次数: |
20548 次 |
最近记录: |