文档章节

bash complete -C command

__赵小刚__
 __赵小刚__
发布于 2017/09/30 13:33
字数 414
阅读 42
收藏 0

bash的自动补全机制三件套complete/compgen/compopt之一的complete有一个参数是-C command,

这个参数的用法在帮助里面有点语焉不详

-C command
    command is executed in a subshell environment, and its output is used as the possible completions.

在子shell中执行命令, 并将其结果作为补全条目

所以我尝试摸索了一下它的套路

脚本auto_complete.sh

#!/bin/bash
echo 脚本名字:$0 命令名字:$1 当前参数:$2 前一个参数:$3

将auto_complete.sh作为app1命令的补全脚本

complete -C ./auto_complete.sh app1

辣么(注:<tab>是按TAB键的意思)

app1 <tab>
app1 脚本名字:./auto_complete.sh 命令名字:app1 当前参数: 前一个参数:app1
app1 100<tab>
app1 脚本名字:./auto_complete.sh 命令名字:app1 当前参数:100 前一个参数:app1
app1 888 999<tab>
app1 888 脚本名字:./auto_complete.sh 命令名字:app1 当前参数:999 前一个参数:888
app1 10 20 30 40 50<tab>
app1 10 20 30 40 脚本名字:./auto_complete.sh 命令名字:app1 当前参数:50 前一个参数:40

总结一下,

complete -C command 在子shell中执行命令command, 并将其结果作为补全条目

传递的command的参数有4个,分别是 command的名字 命令的名字 当前(待补全)的参数 前一个参数

command的输出是一行时自动补全,

command的输出是多行时每一行代表一个候选词, 列出供选择

© 著作权归作者所有

共有 人打赏支持
上一篇: poem
__赵小刚__
粉丝 5
博文 40
码字总数 19077
作品 0
成都
程序员
私信 提问
加载中

评论(4)

__赵小刚__
__赵小刚__

引用来自“Maxwell1987”的评论

当然当前?

引用来自“__赵小刚__”的评论

谢谢波波提醒,已经把“当然”改成“当前”了

引用来自“Maxwell1987”的评论

再多讲讲这块,我看各个 shell 下补全能力各有不同,正想研究下怎么拉齐它们的能力。
不要意思才看到消息,好,以后有空多写
Maxwell1987
Maxwell1987

引用来自“Maxwell1987”的评论

当然当前?

引用来自“__赵小刚__”的评论

谢谢波波提醒,已经把“当然”改成“当前”了
再多讲讲这块,我看各个 shell 下补全能力各有不同,正想研究下怎么拉齐它们的能力。
__赵小刚__
__赵小刚__

引用来自“Maxwell1987”的评论

当然当前?
谢谢波波提醒,已经把“当然”改成“当前”了
Maxwell1987
Maxwell1987
当然当前?
git在各操作系统平台下的安装和配置

git在各操作系统平台下的安装和配置 标签 : git [TOC] 本文是git系列博客的第一篇,主要介绍git在windows,linux,Mac OX等不同操作系统下的安装和配置,主要以后两者为主。 工具下载 ubuntu: ...

brianway
2016/08/07
30
0
Bash readline 的使用技巧(RT)

Bash readline 的使用技巧 很多人会用 Bash,但是很少有人知道 readline 是怎么回事。readline 是一个强大的库,只要使用了它的程序,都可以用同一个配置文件配置,而且用同样的方法操作命令...

红薯
2009/05/06
607
0
Clink(Powerful Bash-style command line editing )

Powerful Bash-style command line editing for cmd.ex 一个类似linux的bash的cmd插件。 我们可以在windows 下的cmd.exe 支持c-a c-e c-b c-f a-b a-f.... 点击clink.bat以后,在运行 clink ......

红烧土豆
2014/10/14
0
0
How to download embedded videos with F12 Tools in

How to download embedded videos with F12 Tools in Scott Hanselman's Blog2017-11-291 阅读 Tools I got an email this week asking how to download some of my Azure Friday video podc......

Scott Hanselman's Blog
2017/11/29
0
0
supervisor开启postgresql

想通过supervisor开机启动postgresql supervisor配置文件 [program:postgresql_server] command=/bin/bash -c "exec /usr/local/postgresql_9.6.2/bin/pg_ctl start -l /usr/local/postgres......

千里之行12
2017/04/25
262
2

没有更多内容

加载失败,请刷新页面

加载更多

TiDB 3.0 Beta Release Notes

2019 年 1 月 19 日,TiDB 发布 3.0 Beta 版,对应 master branch 的 TiDB-Ansible。相比 2.1 版本,该版本对系统稳定性、优化器、统计信息以及执行引擎做了很多改进。 TiDB 新特性 支持 Vi...

TiDB
23分钟前
2
0
从拼多多优惠券事件看到的一些反思

本文由云+社区发表 作者:颜国平 摘要:最近几年,电商行业飞速发展,各种创业公司犹如雨后春笋大量涌现,商家通过各种活动形式的补贴来获取用户、培养用户的消费习惯,即将到来的“ 购物狂欢...

腾讯云加社区
23分钟前
4
0
记录一次BUG

1: 请求注册页面时生成一个UUID, 并且将UUID隐藏在页面中并且添加到session中去。 2: 发送短信时获取手机号和UUID,将两者发送至服务器 3: 先判断UUID和session中UUID是否一致。 不一致就...

专业写BUG的程序员
28分钟前
1
0
阿里云漏洞提示:phpMyAdmin <=4.8.1 checkPageValidity函数缺陷可导致GETSHELL

如题: phpMyAdmin <=4.8.1 后台checkPageValidity函数缺陷可导致GETSHELL 即:checkPageValidity函数对外部输入过滤不严,可导致本地包含任意文件。进一步地攻击者可通过注入代码到特定文件...

408582708
29分钟前
1
0
PyTorch可视化理解卷积神经网络

摘要: 神经网络工具像一个黑匣子,无法知道它的中间是如何处理的。本文使用图片加代码的形式讲解CNN网络,并对每层的输出进行可视化,便于初学者理解,可以动手实践下哦! 如今,机器已经能...

阿里云官方博客
41分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部