Shell脚本:curl主体内的变量

时间:2018-06-28 11:14:29

标签: shell

我需要将带有变量的curl主体插入到shell脚本中:

这是脚本片段:

    curl -k \
      -X PUT \
      -d @- \
      -H "Authorization: Bearer $TOKEN" \
      -H "Accept: application/json" \
      -H "Content-Type: application/json" \
      "$SERVER_URL/api/v1/namespaces/$NAMESPACE/secrets/$SECRET_ID" <<-'EOF'
      {
        "kind": "Secret",
        "apiVersion": "v1",
        "metadata": {
          "name": "$SECRET_ID"
        },
        "stringData": {
          "$key": "$value"
        }
      }
EOF

但是,$SECRET_ID$key$value都没有“解决”。

编辑

我已经尝试过:

    curl -k \
      -X PUT \
      -d @- \
      -H "Authorization: Bearer $TOKEN" \
      -H "Accept: application/json" \
      -H "Content-Type: application/json" \
      "$SERVER_URL/api/v1/namespaces/$NAMESPACE/secrets/$SECRET_ID" <<-"EOF"
      {
        "kind": "Secret",
        "apiVersion": "v1",
        "metadata": {
          "name": "$SECRET_ID"
        },
        "stringData": {
          "$key": "$value"
        }
      }
EOF

但这是行不通的。

1 个答案:

答案 0 :(得分:2)

您使用<<-'EOF'在Heredoc中引用了JSON。如果使用heredoc分隔符,则不会扩展变量。使用<<-EOF获得普通的双引号变量扩展语义。