为什么kubectl bash完成不能在macOS / OS X上运行?

时间:2017-07-21 15:00:21

标签: bash kubernetes homebrew bash-completion kubectl

我按照extension MyTableViewController: MyCellDelegate { func myCellRequestedToOpenAnswerVC(cell: MyCell) { self.goToNextView() } } 给出的安装Bash完成的说明进行了操作:

  1. 我通过Homebrew
  2. 安装了kubectl completion -h
  3. 在我的bash-completion中,我首先来源~/.bashrc,然后从完成kubectl子命令输出:
    • bash-completion
    • source $(brew --prefix)/etc/bash_completion
  4. 有了这些,我启动了一个新的shell但是完成不起作用。我如何让它运作?

4 个答案:

答案 0 :(得分:2)

Homebrew安装source <(kubectl completion bash)后,似乎是其完成 需要居住在bash-completion。在那里你会发现很多其他的完成捆绑在一起。添加kubectl的完成:

$(brew --prefix)/etc/bash_completion.d

这对我有用。

答案 1 :(得分:0)

请参阅kubectl文档中的“在macOS上,使用bash”部分:https://kubernetes.io/docs/tasks/tools/install-kubectl/#on-macos-using-bash  我最近贡献了这些,所以他们应该是最新的。如果没有,请发送拉动请求以解决问题。

另外:https://blog.fabric8.io/enable-bash-completion-for-kubernetes-with-kubectl-506bc89fe79e

答案 2 :(得分:0)

我的答案是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完成。

答案 3 :(得分:0)

  1. brew install bash-completion之后,要实际启用bash补全,您需要:
    source /usr/local/etc/profile.d/bash_completion.sh
    
    将该行添加到您bashrc中。
  2. 然后您可以:
    source <(kubectl completion bash)