Ubuntu 如何找出Kubectl ZSH自动完成脚本失败的原因?

Ubuntu 如何找出Kubectl ZSH自动完成脚本失败的原因?,ubuntu,zsh,kubectl,Ubuntu,Zsh,Kubectl,我在Ubuntu 18.04上运行,使用zsh而不是bash。要获得kubectl完成,它应该像添加 source <(kubectl completion zsh) 到 请记住以下命令: source <(kubectl completion zsh) 它生成kubectl自动完成脚本,并将其打印到标准输出。您可以简单地将其输出重定向到文件,而不是以这种方式使用它: kubectl completion zsh > kubectl-autocompletion-scrip

我在Ubuntu 18.04上运行,使用zsh而不是bash。要获得kubectl完成,它应该像添加

source <(kubectl completion zsh)


请记住以下命令:

source <(kubectl completion zsh)
生成
kubectl自动完成脚本
,并将其打印到标准输出。您可以简单地将其输出重定向到文件,而不是以这种方式使用它:

kubectl completion zsh > kubectl-autocompletion-script
更改行:

_complete kubectl 2>/dev/null
致:

或者你喜欢的剧本的其他部分

很难猜测在特定情况下会出现什么错误,但您可以轻松地调试脚本。仅出于调试目的,您可以尝试将其作为任何其他shell脚本运行。如果在获取脚本(基本上是在当前shell中运行脚本)时出现任何错误,那么在新shell中运行脚本时也会看到这些错误,这当然不会影响当前运行shell的环境,但会告诉您可能存在的问题

要打开调试模式,您需要使用
-x
标志(或
-xv
用于详细输出):

这将告诉您问题所在的位置

还有一件事:作为添加
源代码的替代方案
source <(kubectl completion zsh)
kubectl completion zsh
kubectl completion zsh > kubectl-autocompletion-script
_complete kubectl 2>/dev/null
_complete kubectl 2>~/logs.txt
zsh -x kubectl-autocompletion-script