Bash
命令行工具如何擁有自己的自動完成列表?
Ubuntu 中的 Bash 如何知道工具的特定操作列表?
例如,如果我鍵入apt-get和 tab 兩次,我只會看到刪除、更新、升級 …等,但看不到另一個命令的操作或目前目錄中的文件。
我正在用 Go 開發一個命令行工具,並希望為支持它的發行版提供此功能。
它使用 bash v4 的完成功能來做到這一點。的完成程式碼
apt-get
由bash-completion
包提供,位於/usr/share/bash-completion/completions/apt-get
. 具有完成但不屬於基本bash-completion
包的應用程序將其完成腳本放在/etc/bash_completion.d
.完成是通過 sourcing 載入的
/etc/bash_completion
。具體在哪裡完成取決於 Debian 或 Ubuntu 版本。反過來,這將在/usr/share/bash-completion/completions
and中獲取所有內容/etc/bash_completion.d
。