【问题标题】:Pipe curl output after using a multi-line request payload使用多行请求有效负载后的管道 curl 输出
【发布时间】:2019-10-27 05:23:28
【问题描述】:

我有一个接受 JSON 作为其有效负载的 curl 请求。 JSON 有效负载是一个多行字符串。在EOF 之后,我无法通过管道输出此 curl 的输出。

curl https://foo.bar/v1/baz \
        -H "FOO-BAR: BAZ" \
        -X POST -d @- <<'EOF'
{
    "foo" : "foo_foo",
    "bar": {}
}
EOF

这行得通,但如果我想将它的输出传送到某个东西,例如python -m json.tool,我就有问题了。以下不起作用:

curl https://foo.bar/v1/baz \
        -H "FOO-BAR: BAZ" \
        -X POST -d @- <<'EOF'
{
    "foo" : "foo_foo",
    "bar": {}
}
EOF | python -m json.tool

【问题讨论】:

    标签: bash curl pipe


    【解决方案1】:

    here 文档直到命令本身之后的下一个(逻辑)行才开始。与任何其他重定向运算符一样,&lt;&lt;'EOF' 不需要是命令行上的最终标记。

    curl https://foo.bar/v1/baz \
        -H "FOO-BAR: BAZ" \
        -X POST -d @- <<'EOF'  | python -m json.tool
    {
        "foo" : "foo_foo",
        "bar": {}
    }
    EOF
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多