YAML需要使用# inside,但不注释它



我需要在YAML文件中使用这段代码来从文件中删除字符,但是在YAML#上是注释,不能在#

之后全部执行我要执行的示例:echo $(tr -d '[[]#,"]')

是否有任何解决方法来实现我想要的?

在您的情况下,最简单的可能是使用折叠块样式,因为您的tr中确实有简单的双引号,并且使用引号字符串将需要您转义字符,这可能是一个痛苦。

但是为了完整起见,这里有几种可能的方法:

foo: "# I am not a comment, as I am enclosed in double quoted string"
bar: '# me neither, as I am enclosed in a single quoted string'
baz: |
# so ain't I, in a literal style block
qux: >
# I don't differ from the three above, in a folded style block

那么,在你的例子中,你可以这样做:

my_command: >-
echo $(tr -d '[[]#,"]')

这只是YAML语法的问题。您可以将命令括在单引号或双引号中,并使用反斜杠转义内引号()

例如,使用单引号并使用'转义文本内部单引号:

script:
- 'echo $(tr -d '[[[]#,"]')'

或者用双引号:

script:
- "echo $(tr -d '[[]#,"]')"

您也可以使用其他不需要转义的字符串样式,如另一个答案所述。

最新更新