Windows11 PowerShell中kubectl --template命令报错:未知短标志'e'
错误原因及解决方法
这个错误是Windows PowerShell的语法解析特性导致的:PowerShell会把命令中的{{}}大括号当作自身的变量/表达式语法进行解析,破坏了原本传递给kubectl的模板参数,最终导致kubectl收到了意外的-encodedCommand参数,触发报错。
解决方法有以下几种:
- 用单引号包裹整个模板字符串,阻止PowerShell解析大括号:
kubectl get secrets/my-app -n my-ns --template='{{.data.database_host}}' - 用双引号包裹模板,同时给大括号加反引号`转义:
kubectl get secrets/my-app -n my-ns --template="`{{.data.database_host}}" - 改用
jsonpath输出格式,语法更适配PowerShell环境:kubectl get secrets/my-app -n my-ns -o jsonpath='{.data.database_host}'
内容的提问来源于stack exchange,提问作者João Pedro Schmitt
相关产品推荐
相关产品推荐

