Sat*_*ian 3 bash json curl github
我正在尝试编写一个示例脚本,在其中生成“student-101...student-160”等名称。我需要发布 JSON 数据,当我这样做时,我收到 JSON 解析错误。
这是我的脚本:
name="student-10"
for i in {1..1}
do
r_name=$name$i
echo $r_name
curl -i -H 'Authorization: token <token>' -d '{"name": $r_name, "private": true}' "<URL>" >> create_repos_1.txt
echo created $r_name
done
Run Code Online (Sandbox Code Playgroud)
我总是收到"Problems parsing JSON"错误。我尝试过各种引号组合等,但似乎没有任何效果!
我究竟做错了什么?
首先,您的name属性是一个字符串,因此您需要在 json 中为其添加双引号。
其次,使用单引号,bash 不会进行变量扩展:它不会替换$r_name为变量内容(有关详细信息,请参阅bash shell 脚本中命令中单引号内的变量扩展)。
总之,使用:
-d '{"name": "'"$r_name"'", "private": true}'
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用printf创建数据字符串:
printf -v data '{"name": "%s", "private": true}' "$r_name"
curl -i -H 'Authorization: token <token>' -d "$data" "$url" >> create_repos_1.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12511 次 |
| 最近记录: |