我正在Ubuntu 18.04上运行,并使用zsh而不是bash。要完成kubectl,应该像添加
一样简单source <(kubectl completion zsh)
到〜/ .zshrc配置。我已经这样做了,但是kubectl自动完成功能不起作用。我已经重新加载了终端几次。
将命令更改为
source <(kubectl completion zsh) && echo success || echo failure
我在加载终端时看到“失败”。所以我的结论是脚本出了点问题。该脚本关闭了所有输出,所以我不知道到底出了什么问题。
有人知道什么可能是错的吗?或者也许是特定脚本所在的位置,所以我可以更改
_complete kubectl 2>/dev/null
到
_complete kubectl 2>~/logs.txt
答案 0 :(得分:1)
请记住以下命令:
Public Class MyTest
Public Property DTO As DateTimeOffset = #1900-01-01#
End Class
Public Sub TestMethod()
Dim myDate As String = "{""DTO"": ""1900-01-01T00:00:00""}"
Dim o = JsonConvert.DeserializeObject(Of MyTest)(myDate,
New JsonSerializerSettings With {
.DateParseHandling = DateParseHandling.DateTimeOffset,
.DateTimeZoneHandling = DateTimeZoneHandling.Utc
})
End Sub
简单地提供命令的输出:
source <(kubectl completion zsh)
生成的 kubectl completion zsh
并将其打印到标准输出。不必以这种方式使用它,您可以简单地将其输出重定向到文件:
kubectl autocompletion script
更改行:
kubectl completion zsh > kubectl-autocompletion-script
收件人:
_complete kubectl 2>/dev/null
或您喜欢的脚本的任何其他部分。
很难猜测在特定情况下可能出什么问题,但是您可以轻松地调试脚本。仅出于调试目的,您可以尝试像其他任何Shell脚本一样运行它。如果在采购脚本时出现任何错误(基本上是在当前shell中运行),则在 new shell 中运行脚本时也会看到这些错误当然不会影响您当前正在运行的Shell的环境,但是会告诉您可能是问题所在。
要打开调试模式,您需要使用_complete kubectl 2>~/logs.txt
标志(或将-x
用于详细输出):
-xv
这应该告诉您问题所在的位置。
又一件事:除了将zsh -x kubectl-autocompletion-script
添加到source <(kubectl completion zsh)
之外,您可能希望将脚本放置在~/.zshrc
中,该脚本基本上可以相同,但全局,适用于所有用户。