Kubernetes kubectl bash完成,别名为

Kubernetes kubectl bash完成,别名为,kubernetes,Kubernetes,我正在将kubectl与bash completion一起使用,但我更喜欢为kubectl使用一个较短的别名,例如ks,我需要做哪些更改才能使bash completion与别名一起工作ks更新自: 在~/.bashrc文件中获取完成脚本的源代码: echo'source我在我的.bashrc中有这个,用于获取别名和自动完成 来源:官方文件 # after installing bash completion alias k=kubectl complete -F __start_kubec

我正在将
kubectl与bash completion一起使用
,但我更喜欢为
kubectl
使用一个较短的别名,例如
ks
,我需要做哪些更改才能使bash completion与别名一起工作
ks

更新自:

  • 在~/.bashrc文件中获取完成脚本的源代码:
    echo'source我在我的.bashrc中有这个,用于获取别名和自动完成

    来源:官方文件

    # after installing bash completion
    
    alias k=kubectl
    complete -F __start_kubectl k
    

    只是为了补充结束行的awnser(他的解决方案只在shell的活动会话中有效,如果你关闭,你必须重新执行),也许可以帮助我遇到同样麻烦的人

    您可以使用上面的结构从

    echo'alias k=kubectl'>>~/.bashrc(将别名添加到shell)


    echo'source此解决方案比被认为“正确”的解决方案要简单得多。如果我想在bash中完成“复合别名”,比如我设置了一个别名“kdry”,它解析为“kubectl--dry run=client”,该怎么办。但是在bash中在kdry之后键入并没有自动完成功能。为什么?(注意:这在zsh中不起作用。)
    if [[ $(type -t compopt) = "builtin" ]]; then
        complete -o default -F __start_kubectl kubectl
    else
        complete -o default -o nospace -F __start_kubectl kubectl
    fi
    
    if [[ $(type -t compopt) = "builtin" ]]; then
        complete -o default -F __start_kubectl ks
    else
        complete -o default -o nospace -F __start_kubectl ks
    fi
    
    # after installing bash completion
    
    alias k=kubectl
    complete -F __start_kubectl k