【问题标题】:Get a value in first element of json array of gitAPI response in shell script在shell脚本中获取gitAPI响应的json数组的第一个元素中的值
【发布时间】:2018-03-29 06:26:52
【问题描述】:

我正在使用 GIT API 获取特定 git 存储库的最新版本的浏览器下载 URL。

Curl command : curl -i https://api.github.com/repos/$owner/$repo/releases

它提供 JSON 数组作为响应。

假设,给定的 repo 有 5 个版本。

我想获取 JSON 响应中第一个元素的“browser_download_url”值。

shell脚本中可以使用什么命令?

【问题讨论】:

  • 试试curl blahblah | jq '.[0] | .browser_download_url'。如果没有,请安装jq

标签: json bash shell github-api


【解决方案1】:

首先,您不想使用-i 开关,那只会弄乱 json 输出。

其次,如果您查看了github的api文档,您可以通过使用正确的url直接获取您想要的数据。版本列表中的第一项将是最新发布的版本...所以获取最新版本。

最后,您可以使用jq 深入了解您要检索的资产并获取网址。

$ curl https://api.github.com/repos/$owner/$repo/releases/latest \
    | jq '.assets[].browser_download_url'

如果您想要一个特定的命名发布资产,您可以使用 select/1 的名称从资产数组中进行选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2019-12-14
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多