将 YAML 转换为 JSON 时出错:yaml:第 30 行:发现未知转义字符

Jer*_*emy 9 kubernetes

当我想运行以下 YAML 文件时,出现以下错误:将 YAML 转换为 JSON 时出错:yaml: line 30: find Unknown escape character

kind: Deployment
apiVersion: apps/v1beta2
metadata:
  labels:
    run: $DEPLOYMENT_NAME
  name: $DEPLOYMENT_NAME
  namespace: default
spec:
  replicas: 2
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      run: $TEMPLATE_LABEL
  template:
    metadata:
      labels:
        run: $TEMPLATE_LABEL
    spec:
      containers:
      - name: wapp
        image: $IMAGE_WCE
        lifecycle:
          postStart:
            exec:
              command: ["/bin/sh", "-c", "sed -i $a\-Djdk.tls.rejectClientInitiatedRenegotiation=true /opt/app/a.ini"]
Run Code Online (Sandbox Code Playgroud)

我认为这是命令导致的错误。

sed -i $a\\-Djdk.tls.rejectClientInitiatedRenegotiation=true /opt/app/a.ini
Run Code Online (Sandbox Code Playgroud)

小智 20

我认为问题出\-在你的 sed 命令中。只需查看yaml 规范,如果使用双引号,则必须转义反斜杠,即:\\- 但是使用单引号怎么样?

  • 更改为单引号为我解决了这个问题 (3认同)