1. 程式人生 > >使用Bash中Complete自動補全命令

使用Bash中Complete自動補全命令

大家在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等,具體請參看文後的參看資料