Ubuntu 中的 Bash 如何知道工具的具体操作列表?
例如,如果我输入apt-get和 tab 两次我只看到删除、更新、升级...等,但看不到另一个命令或当前目录中的文件的操作。
我正在用 Go 开发一个命令行工具,并希望为支持它的发行版提供此功能。
答案1
它使用 bash v4 的完成功能来完成此操作。的完成代码apt-get
由包提供bash-completion
并位于/usr/share/bash-completion/completions/apt-get
。已完成但不属于基础bash-completion
包一部分的应用程序将其完成脚本放置在/etc/bash_completion.d
.
完成的内容通过 sourceing 加载/etc/bash_completion
。具体执行位置因 Debian 或 Ubuntu 版本而异。这反过来又会来源/usr/share/bash-completion/completions
和中的所有内容/etc/bash_completion.d
。