博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bash complete -C command
阅读量:6161 次
发布时间:2019-06-21

本文共 949 字,大约阅读时间需要 3 分钟。

  hot3.png

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/bashecho 脚本名字:$0 命令名字:$1 当前参数:$2 前一个参数:$3

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

complete -C ./auto_complete.sh app1

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

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

总结一下,

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

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

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

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

转载于:https://my.oschina.net/2bit/blog/1545914

你可能感兴趣的文章
Redis 介绍2——常见基本类型
查看>>
asp.net开发mysql注意事项
查看>>
(转)Cortex-M3 (NXP LPC1788)之EEPROM存储器
查看>>
ubuntu set defult jdk
查看>>
[译]ECMAScript.next:TC39 2012年9月会议总结
查看>>
【Xcode】编辑与调试
查看>>
用tar和split将文件分包压缩
查看>>
[BTS] Could not find stored procedure 'mp_sap_check_tid'
查看>>
PLSQL DBMS_DDL.ALTER_COMPILE
查看>>
Activity生命周期
查看>>
高仿UC浏览器弹出菜单效果
查看>>
Ubuntu忘记密码,进不了系统的解决方法
查看>>
[原创]白盒测试技术思维导图
查看>>
<<Information Store and Management>> 读书笔记 之八
查看>>
Windows 8 开发之设置合约
查看>>
闲说HeartBeat心跳包和TCP协议的KeepAlive机制
查看>>
MoSQL
查看>>
Hibernate多对一外键单向关联(Annotation配置)
查看>>
《CLR via C#》读书笔记 之 方法
查看>>
设计模式:组合模式(Composite Pattern)
查看>>