用curl发送一个帖子json得到错误

时间:2014-11-28 20:11:38

标签: linux bash curl

我试图创建一个bash脚本,使github pull request成为我的代码:

Gist Code

我收到此错误:

curl: (6) Could not resolve host: on
curl: (3) [globbing] unmatched close brace/bracket in column 63
{
  "message": "Problems parsing JSON",
   "documentation_url": "https://developer.github.com/v3"
}

请帮忙

2 个答案:

答案 0 :(得分:2)

更多/正确引用:

body=$(printf '{"title":"%s","body":"%s","head":"clamour:%s","base":"%s"}' "$TITLE" "$DESCRIPTION" "$TARGET" "$SOURCE")
curl -H "$auth" -d "$body" "https://api.github.com/repos/clamour/$PROJECT/pulls"

所有用户提供的变量必须被引用(除非您确切地知道为什么要离开然后不加引号)。 在${braces}中加上变量名称"$quoting"相同。

我发现使用printf往往比使用变量插值混合双引号和单引号更清晰。

不要使用ALLCAPS变量名的习惯:有一天你会使用PATH=...,然后想知道为什么你的脚本坏了

答案 1 :(得分:1)

你使用了很多变量 试着这样做

BODY="{\"title\":\"$TITLE\",\"body\":\"$DESCRIPTION\",\"head\":\"clamour\":\"$TARGET\",\"base\":\"$SOURCE\"}"
"https://api.github.com/repos/clamour/$PROJECT/pulls"

另请阅读此Difference between single and double quotes in Bash