将带有多行的bash变量输出到curl json

将带有多行的bash变量输出到curl json,json,bash,curl,github-api,Json,Bash,Curl,Github Api,我正在尝试创建一个脚本,该脚本将使用GithubAPI发布包含命令输出的注释。此输出有多行 以下是我想做的: curl -H "Authorization: token oauthtoken" \ -H "Content-Type: application/json" \ -X POST -d@- \ https://api.github.com/repos/company/repo/issues/14/comments <<EOF { "body":"$OUTPUT" }

我正在尝试创建一个脚本,该脚本将使用GithubAPI发布包含命令输出的注释。此输出有多行

以下是我想做的:

curl -H "Authorization: token oauthtoken" \ 
-H "Content-Type: application/json" \
-X POST -d@- \
https://api.github.com/repos/company/repo/issues/14/comments <<EOF
{
    "body":"$OUTPUT"
}
EOF
curl-H“授权:令牌oauthtoken”\
-H“内容类型:应用程序/json”\
-X POST-d@-\

https://api.github.com/repos/company/repo/issues/14/comments 我不认为问题的根本原因是换行,问题是
$text
的值没有正确格式化

下面是一个简单的例子:

test="
Hello
World
"
curl -X POST -d '{"body": "'"$test"'"}' http://server.com/...
看到新的线路工作



为了能够使用json发送任意命令的结果,您需要在之前对文本进行json编码。

解析json时,我仍然遇到
问题。我更新了我的问题,使用了herdoc,因为这似乎有效,但将我的多行代码挤在一起。在herdoc中执行
““$OUTPUT””
似乎也不起作用。是的,因为
ls-al
的输出不能安全地作为json发布。您需要先对其进行json_编码。。你可以先试试像foobar这样的简单方法吗?啊,这很有效。因此,如果它对我想要的命令输出仍然不起作用,我需要首先通过json_编码来运行它。@brpoock一个引号不会有问题。双引号将是一个问题,因为它破坏了json