【问题标题】:Detect the presence of Bash completion in bash检测 bash 中是否存在 Bash 补全
【发布时间】:2016-03-10 16:14:57
【问题描述】:

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

【问题讨论】:

  • 您已收到多个问题的答案,但从未接受过正确或有帮助的答案。您可能想要评估它们,并在可能的情况下评估它们accept them as correct or helpful

标签: bash bash-completion


【解决方案1】:

就个人而言,我还没有看到任何未设置BASH_COMPLETION_COMPAT_DIR 的情况。

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

complete -p

另一种选择是检查one of the more unique function namesthe type command,看看它是否是一个函数。

type -t _get_comp_words_by_ref

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

【讨论】:

【解决方案2】:
  1. 转到同时包含文件和子目录的目录。

  2. 输入 cd <TAB><TAB> 并查看自动完成结果列表。

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

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

【讨论】:

    猜你喜欢
    • 2015-02-18
    • 2011-02-06
    • 2011-12-19
    • 2011-07-09
    • 2011-09-07
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    相关资源
    最近更新 更多