我正在尝试创建一个脚本,该脚本将使用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
如何输出变量以使其尊重包含在其中的多行?现在,当我运行该命令时,所有换行都会被压缩到一行。
答案 0 :(得分:2)
我不认为问题的根本原因是换行符,问题是$text
的值没有正确格式化json。
请按照以下简单示例:
test="
Hello
World
"
curl -X POST -d '{"body": "'"$test"'"}' http://server.com/...
看到新线路正常工作。
为了能够使用json发送任意命令的结果,你需要先对文本进行json编码。