大家在Linux下都用shell的TAB自动补全功能,非常方便,但是有时自己开发程序,可能需要自定义实现TAB自动补全功能,这时可能就会用到complete命令来实现对命令的自定义补全,本文主要介绍complete的用法

complete参数详解

complete [-abcdefgjksuv] [-o comp-option] [-A action] [-G globpat] [-W wordlist] [-P prefix] [-S suffix] [-X filterpat] [-Ffunction] [-C command] name [name ...]
  • -W wordlist: 自动补全使用的wordlist, 使用IFS分割,会和当前用户输入的Word做前缀比较,提示那些匹配的word list.
  • -S suffix: 向每个自动补全word后添加suffix 后缀.
  • -P prefix: 向每个自动补全word后添加prefix 前缀.
  • -X filterpat: 对于文件名,将匹配pattern的文件名从completion list中移除(exclude), pattern中使用!表示否定
  • -G globpat: 对于文件名,将匹配pattern的文件名作为可能的completion. 与-X刚好相反,-X “!*.foo” 与 -G “*.foo”作用相同
  • -C command: 将command命令的执行结果作为可能的completion.
  • -F function: 执行shell function,在function中对COMPREPLY这个数组复制,作为可能的completion
  • -p [name]: 打印当前自定义的complete
  • -r [name]: 删除当前自定的complete
  • -A action : 表示生成可能的completion的方式,包括alias, file, directory等,具体请参看文后的参看资料



Logo

更多推荐