json - 输出多行 bash 变量以 curl json

标签 json bash curl github-api

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

这是我想要做的:

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 编码。

关于json - 输出多行 bash 变量以 curl json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30712771/

相关文章:

android - Asynctask + JSON(如何获取一些值)

json - 如何对使用转换器的 Grails 服务进行单元测试?

bash - 设置动态创建的 bash 变量

linux - 从 cshell 中的 .txt 文件中删除特定行

来自 URL : return code when curl fails? 的 Bash 脚本

c# - 无法解析 JSON 文件,Progam.cs asp.net core 中出错

javascript - 对json转XML后的结果进行排序

linux - 在不使用插件的情况下增加 Maven 版本

java - JAX-RS 端点中的 BadRequestException

php - 如何从 PHP 中的 301 重定向下载链接获取图像?