要获取最新版本,我可以运行:
curl --silent "https://api.github.com/repos/maxisme/notifi/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/'
Run Code Online (Sandbox Code Playgroud)
但我想要最新版本的 tag_name ,即草稿/预发布?
我们可以使用以下路线来获取所有版本:
https://api.github.com/repos/maxisme/notifi/releases
Run Code Online (Sandbox Code Playgroud)
使用像jq这样的 Json 工具,我们可以轻松过滤所有对象,仅显示那些 where prerelease: true,然后提取tag_name最新版本的 ,如下所示:
jq -r 'map(select(.prerelease)) | first | .tag_name'
Run Code Online (Sandbox Code Playgroud)
哪里:
JqPlay演示
select(.prerelease)过滤到项目prerelease: truefirst获取版本数组中的第一个对象.tag_nametag_name显示键的值将其与 bash 语句结合起来:
https://api.github.com/repos/maxisme/notifi/releases
Run Code Online (Sandbox Code Playgroud)
印刷:
jq -r 'map(select(.prerelease)) | first | .tag_name'
Run Code Online (Sandbox Code Playgroud)
如果您不确定prerelease项目中是否会有 a,我们可以为jq调用添加后备:
map(select(.prerelease)) | first | .tag_name // "Not found"
Run Code Online (Sandbox Code Playgroud)
现在将Not found显示.tag_nameprelease
| 归档时间: |
|
| 查看次数: |
4954 次 |
| 最近记录: |