windows 模板解析错误:模板::1:操作数中出现意外的“=”

jckbn6z7  于 2023-04-22  发布在  Windows
关注(0)|答案(1)|浏览(67)
template parsing error: template: :1: unexpected "=" in operand

在Windows中执行以下命令时出现上述错误,

docker inspect --format="{{range $key, $value := .Config.Env}}{{if eq (index (split $value "=") 0) "VERSION"}}{{$value}}{{end}}{{end}}" octopusbi-agent-backend

会是什么问题呢?

tjrkku2a

tjrkku2a1#

"="符号的问题是,如果在用双引号(")括起来的字符串中使用双引号("),则必须在每个双引号(")之前添加反斜杠(\),不包括第一个和最后一个双引号(")。
例如:-

"Hello "your_name""  <-- wrong
"Hello \"your_name\""  <-- correct

Windows

正如我前面提到的,我将"="更改为\"=\",在此之后,我遇到了另一个与其他名为"VERSION"的字符串值相关的问题。为此,我还必须将"VERSION"更改为\"VERSION\",它按预期工作。

最后的命令是,

docker inspect --format="{{range $key, $value := .Config.Env}}{{if eq (index (split $value \"=\") 0) \"VERSION\"}}{{$value}}{{end}}{{end}}" octopusbi-agent-backend

Ubuntu

我在Ubuntu中运行了相同的命令,开始和结束的引号都带有单引号('),其余的双引号(")都保留了下来。

最后的命令是,

docker inspect --format='{{range $key, $value := .Config.Env}}{{if eq (index (split $value "=") 0) "VERSION"}}{{$value}}{{end}}{{end}}' octopusbi-agent-backend

摘要

如果将docker inspect命令与--format选项一起使用,
1.在Windows中:-
1.您必须以双引号(")开始格式字符串。
1.如果要在格式字符串中使用双引号("),请改用\"
1.在Ubuntu中:-
1.您必须以单引号(')开始格式字符串。
1.可以在格式字符串中使用双引号(")。
简而言之,如果需要使用引号,我们必须在两种环境的格式字符串中使用双引号(")。

相关问题