Bash

命令行工具如何擁有自己的自動完成列表?

  • June 26, 2015

Ubuntu 中的 Bash 如何知道工具的特定操作列表?

例如,如果我鍵入apt-get和 tab 兩次,我只會看到刪除、更新、升級 …等,但看不到另一個命令的操作或目前目錄中的文件。

我正在用 Go 開發一個命令行工具,並希望為支持它的發行版提供此功能。

它使用 bash v4 的完成功能來做到這一點。的完成程式碼apt-getbash-completion包提供,位於/usr/share/bash-completion/completions/apt-get. 具有完成但不屬於基本bash-completion包的應用程序將其完成腳本放在/etc/bash_completion.d.

完成是通過 sourcing 載入的/etc/bash_completion。具體在哪裡完成取決於 Debian 或 Ubuntu 版本。反過來,這將在/usr/share/bash-completion/completionsand中獲取所有內容/etc/bash_completion.d

引用自:https://unix.stackexchange.com/questions/149730