shell 在helm中使用单反斜杠

wgeznvg7  于 2023-04-21  发布在  Shell
关注(0)|答案(1)|浏览(147)

我正在使用helm模板为shell容器生成输入命令,在那里我需要转义单引号。我能够使用["f'\''first","second"]实现,但当我尝试使用helm生成时,我面临以下问题。
template.yaml

---
example: {{- .Values.items | toJson | nindent 2 }}

values.yaml

---
items: ["f'\''first", "second"]

电流输出

---
example:
  ["f'''first","second"]

预期产量

---
example:
  ["f'\''first","second"]

如果我使用["f'\\''first","second"],我得到["f'\\''first","second"],而我只需要一个反斜杠

5ktev3wc

5ktev3wc1#

这是引用的艺术品。

$: cat values.yaml templates/template.yaml
---
items: [ "f'\''first", "s'\\''second", o'\''other ]

---
asJSON       : {{- .Values.items | toJson | nindent 2 }}
asYAML       : {{- .Values.items | toYaml | nindent 2 }}
raw-quoted   : {{  .Values.items | quote              }}
just-raw     : {{  .Values.items                      }}
individually : {{- range $ndx, $v := .Values.items    }}
 {{ $ndx }}: {{ $v }}
 {{- end }}

$: helm template .
---
# Source: foo/templates/template.yaml
asJSON       :
  ["f'''first","s'\\''second","o'\\''other"]
asYAML       :
  - f'''first
  - s'\''second
  - o'\''other
raw-quoted   : "[f'''first s'\\''second o'\\''other]"
just-raw     : [f'''first s'\''second o'\''other]
individually :
 0: f'''first
 1: s'\''second
 2: o'\''other

注意使用每个方法的每个版本的输出。你想要的正是你用两个反斜杠得到的,但是当你试图显示它时,它为了“清晰”而改变了输出。特别注意正确格式化的 second 值(索引1)的individually输出中的实际结果。

相关问题