oc.exe 命令提示符中的 OpenShift GoLang 模板解析错误:if 中的意外未关闭操作

OpenShift GoLang Template parsing error in oc.exe command prompt: Unexpected unclosed action in if

请找到我用来从 openshift 容器

中获取 运行 pods 的以下脚本
oc get pods -o template --template {{range.items}}{{if eq .status.phase "Running"}}{{.metadata.name}}{{.status.phase}}{{end}}{{end}}

您稍后必须使用大写 您无法访问小写的字段..

    {{range .items}}
              {{if .Status.Phase "Running"}}
                   {{.Metadata.Name}}
                   {{.Status.Phase}}
               {{end}}

    {{end}}

我认为您的命令有多个问题,一个是您需要在 range .items 之间放置一个 space,主要问题是您没有将模板放在引号中。这导致模板被读取为 {{range.items}}{{if,这将导致上述错误。

要解决此问题,请将您的模板放在引号中,但也要注意转义命令中的所有其他引号:

oc get pods -o template --template "{{range .items}} {{if eq .status.phase \"Running\"}} {{.metadata.name}} {{.status.phase}} {{\"\n\"}} {{end}} {{end}}"