首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用bash_completion与cli工具

使用bash_completion与cli工具
EN

Stack Overflow用户
提问于 2018-07-26 16:16:20
回答 1查看 85关注 0票数 2

我有一个自定义cli工具,我想用bash_completion来设置它,但是希望选项卡在cmdline上执行enter操作。

我想知道的bash_completion文件是:

代码语言:javascript
复制
_wonder()
{
    local cur=${COMP_WORDS[COMP_CWORD]}
    COMPREPLY=( $(compgen -W "audit nodes tools create debug delete update" -- $cur) )
}
complete -F _wonder wonder

目前:

代码语言:javascript
复制
$ wonder [tab] [tab]

返回:

代码语言:javascript
复制
ip-10-99-18-249:loco_dsl jasonparmar$ wonder
audit   create  debug   delete  nodes   tools   update

我想要的是当我使用来自want的工具选项时:

代码语言:javascript
复制
$ wonder tools [tab] [tab] 

我希望选项卡强制在cmdline上输入

我如何编辑我的bash_completion文件,以求实现这一点。

这在bash_completion中可能吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-26 17:06:38

如果您不介意使用外部工具模拟键盘输入(如xdotool),请尝试将以下内容添加为完成函数的第一行:

代码语言:javascript
复制
(( COMP_CWORD > 1 )) && xdotool key Return

正如@RandomUser所指出的,完成执行命令是意想不到的行为。例如,请参见:echo oops; wonder audit <tab><tab>和设想rm -rf *而不是echo。考虑简单地停止完成以指示wonder只接受一个参数:

代码语言:javascript
复制
(( COMP_CWORD > 1 )) && return
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51543352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档