输出 bash 多行变量以卷曲 json

Output bash variable with multiple lines to curl json

我正在尝试创建一个脚本,它将使用 Github API 到 post 包含命令输出的注释。此输出有多行。

这是我正在尝试做的事情:

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

如何以尊重其中包含的多行的方式输出变量?现在,当我 运行 该命令时,所有换行符都被压缩到一行。

我不认为问题的根本原因是换行,问题是 $text 的值格式不正确 json。

按照这个简单的例子:

test="
Hello
World
"
curl -X POST -d '{"body": "'"$test"'"}' http://server.com/...

查看新线路是否正常工作。


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