为什么';t kubectl bash在macOS/OS X上的完成工作?

为什么';t kubectl bash在macOS/OS X上的完成工作?,bash,kubernetes,homebrew,bash-completion,kubectl,Bash,Kubernetes,Homebrew,Bash Completion,Kubectl,我按照kubectl completion-h给出的安装Bash completion的说明进行操作: 我通过自制软件安装了bash completion 在我的~/.bashrc中,我首先使用源代码bash completion,然后从completion kubectl子命令输出: source$(brew--前缀)/etc/bash\u完成 source一旦自制软件安装了bash completion,它的completions 需要驻留在$(brew--prefix)/etc/bash

我按照
kubectl completion-h
给出的安装Bash completion的说明进行操作:

  • 我通过自制软件安装了
    bash completion
  • 在我的
    ~/.bashrc
    中,我首先使用源代码
    bash completion
    ,然后从completion kubectl子命令输出:
    • source$(brew--前缀)/etc/bash\u完成

    • source一旦自制软件安装了
      bash completion
      ,它的completions 需要驻留在
      $(brew--prefix)/etc/bash\u completion.d
      中。在那里,你会发现许多其他的完成捆绑。要添加kubectl的完成情况,请执行以下操作:

      $ kubectl completion bash > $(brew --prefix)/etc/bash_completion.d/kubectl
      
      这对我来说就是个窍门。

      请参阅kubectl文档中的“在macOS上,使用bash”部分: 我最近提供了这些,所以它们应该是最新的。如果没有,请发送拉请求以修复它


      另外:

      我从Ahmet B中找到答案,修复程序说要将以下内容添加到.bashrc文件中:

      export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d"
      [[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
      
      但是,安装完井2:

      brew install bash-completion@2
      
      如果要使用V1完成,则以添加导出行的消息结束。删除该导出为我实现了kubectl完成

    • brew安装bash完成后
      ,要真正启用bash完成,您需要:
      source/usr/local/etc/profile.d/bash_completion.sh
      
      将该行添加到您的
      bashrc
    • 然后你可以:
      源代码