Answers:
根据命令:
/etc/bash_completion.d/*位置(或某些系统上的其他位置)找到某些命令的功能。这些功能与注册的内置的(如告诉Bash调用函数时,按上一个命令)。他们使用内置命令告诉bash“这是可能的补全”。complete complete -F _find find_findTabfindcompgen--help并解析输出。此类命令可以通过complete内置命令注册complete -F _longopt ls。_longopt实际上是完成生成函数,它恰好解析命令的输出而不是使用固定列表。(还有其他更专业的完成功能可以解析命令的输出以生成可能的完成;请/etc/bash_completion.d/*查看示例。)complete内置有该选项,例如-A用于别名。bash完成包在Debian和Ubuntu中提供了对bash完成的支持。您通常还需要在bash完成文件中取消注释/etc/bash.bashrc和/或.bashrc提供源。以下是来自/etc/bash.bashrc:
# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
为此工作。我通常都不会评论它。在Debian中处理交互式/登录Shell有点混乱。
类似的注释大概适用于其他发行版,尽管默认情况下它们可能启用源。