我有一个自定义cli工具,我想用bash_completion来设置它,但是希望选项卡在cmdline上执行enter操作。
我想知道的bash_completion文件是:
_wonder()
{
local cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=( $(compgen -W "audit nodes tools create debug delete update" -- $cur) )
}
complete -F _wonder wonder目前:
$ wonder [tab] [tab]返回:
ip-10-99-18-249:loco_dsl jasonparmar$ wonder
audit create debug delete nodes tools update我想要的是当我使用来自want的工具选项时:
$ wonder tools [tab] [tab] 我希望选项卡强制在cmdline上输入
我如何编辑我的bash_completion文件,以求实现这一点。
这在bash_completion中可能吗?
提前谢谢。
发布于 2018-07-26 17:06:38
如果您不介意使用外部工具模拟键盘输入(如xdotool),请尝试将以下内容添加为完成函数的第一行:
(( COMP_CWORD > 1 )) && xdotool key Return正如@RandomUser所指出的,完成执行命令是意想不到的行为。例如,请参见:echo oops; wonder audit <tab><tab>和设想rm -rf *而不是echo。考虑简单地停止完成以指示wonder只接受一个参数:
(( COMP_CWORD > 1 )) && returnhttps://stackoverflow.com/questions/51543352
复制相似问题