文档章节

bash complete -C command

__赵小刚__
 __赵小刚__
发布于 2017/09/30 13:33
字数 358
阅读 17
收藏 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的输出是多行时每一行代表一个候选词, 列出供选择

© 著作权归作者所有

共有 人打赏支持
__赵小刚__
粉丝 5
博文 40
码字总数 19021
作品 0
成都
程序员
加载中

评论(1)

Maxwell1987
Maxwell1987
当然当前?
Bash readline 的使用技巧(RT)

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

红薯
2009/05/06
432
0
git在各操作系统平台下的安装和配置

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

brianway
2016/08/07
30
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/postgresql9.6.2/bin/pgctl start -l /usr/local/postgresql......

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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

python标准输入输出

input() 读取键盘输入 input() 函数从标准输入读入一行文本,默认的标准输入是键盘。 input 可以接收一个Python表达式作为输入,并将运算结果返回。 print()和format()输出 format()输出...

colinux
32分钟前
0
0
Python 核心编程 (全)

浅拷贝和深拷贝 1.浅拷贝:是对于一个对象的顶层拷贝,通俗的理解是:拷贝了引用,并没有拷贝内容。相当于把变量里面指向的一个地址给了另一个变量就是浅拷贝,而没有创建一个新的对象,如a...

代码打碟手
44分钟前
1
0
PHP 对象比数组省内存?错!数组比对象省内存?错!

刚刚一个群里有人引出了 PHP 数组和对象占用内存谁多谁少的问题。我想起之前我好像也测试过这个问题,和群里人说的对象比数组节省内存的结论相反,我得出的是数组比对象节省内存。 但今天,我...

宇润
今天
1
0
memcached命令行及其用法

21.5 memcached命令行 创建数据 yum install -y telnet 利用telnet命令连接memcached数据库 telnet 127.0.0.1 11211 #写入数据 set key2 0 30 212STORED 这个是错误的示范,因为0 30 已经...

lyy549745
今天
0
0
Maven私服

Maven私服 一、简介 当多人项目开发的时候,尤其聚合项目开发,项目和项目之间需要有依赖关系,通过maven私服,可以保存互相依赖的jar包,这样的话就可把多个项目整合到一起。 如下图: Inst...

星汉
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部