检测bash shell中是否加载了bash完成包的方法是什么?从bash-completion
的版本2.1(包含在Debian 8中)开始,除了BASH_COMPLETION_COMPAT_DIR
之外没有shell变量来指示这个,这不是一个可靠的指标。
答案 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)
转到同时包含文件和子目录的目录。
键入cd <TAB><TAB>
,然后查看自动完成结果列表。
如果自动完成结果仅包含目录(无文件),则表示已安装Bash完成。
如果自动完成结果包括文件,则未安装Bash完成。 (例如,如果您在Docker Ubuntu容器中尝试此操作)。