在bash

时间:2016-03-10 16:14:58

标签: bash bash-completion

检测bash shell中是否加载了bash完成包的方法是什么?从bash-completion的版本2.1(包含在Debian 8中)开始,除了BASH_COMPLETION_COMPAT_DIR之外没有shell变量来指示这个,这不是一个可靠的指标。

2 个答案:

答案 0 :(得分:1)

我没有看到任何个人未设置BASH_COMPLETION_COMPAT_DIR的情况。

您可以使用the complete command-p选项获取所有或特定完成的列表。考虑到你可以随意加载和卸载它们,我不确定它有多可靠。

complete -p

另一个选择是使用one of the more unique function names检查the type command并查看它是否为函数。

type -t _get_comp_words_by_ref

This question and answer也可能提供一些见解。

答案 1 :(得分:0)

  1. 转到同时包含文件和子目录的目录。

  2. 键入cd <TAB><TAB>,然后查看自动完成结果列表。

如果自动完成结果仅包含目录(无文件),则表示已安装Bash完成。

如果自动完成结果包括文件,则未安装Bash完成。 (例如,如果您在Docker Ubuntu容器中尝试此操作)。