Вывод изгиба трубы после использования полезной нагрузки многострочного запроса - PullRequest
0 голосов
/ 12 июня 2019

У меня есть запрос curl, который принимает JSON в качестве полезной нагрузки. Полезная нагрузка JSON представляет собой многострочную строку. У меня проблемы с передачей этого локона после EOF.

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

1 Ответ

2 голосов
/ 12 июня 2019

Этот документ не начинается до следующей (логической) строки после самой команды. Как и любой другой оператор перенаправления, <<'EOF' не обязательно должен быть последним токеном в командной строке.

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