shell命令下载最新github releases

发布时间 2023-07-13 15:50:44作者: 丁少华

前提

以clash为例子

我们得知其现在连接是为

https://github.com/Kr328/ClashForAndroid/releases/download/v2.5.12/cfa-2.5.12-foss-arm64-v8a-release.apk

通过观察和分析得知,想要下载最新的版本 只需要获取最新的版本号即可,然后我们手动拼接,即可获取最新的下载地址

https://github.com/Kr328/ClashForAndroid/releases/download/v[最新的版本号]/cfa-[最新的版本号]-foss-arm64-v8a-release.apk

开干

以下是个完整的shell

# 使用GitHub API获取最新的发行版信息(里边有最新的版本号标识)
response=$(curl -s https://api.github.com/repos/Kr328/ClashForAndroid/releases/latest)

# 提取下载链接 (tag_name属性即为版本号属性 cut命令获取版本号属性的值 awk命令把版本号中的v字符删除)
version=$(echo "$response" | grep 'tag_name' | cut -d'"' -f4 | awk '{print substr($0, 2, length($0) - 1)'})

# 拼接下载连接
download_url=https://github.com/Kr328/ClashForAndroid/releases/download/v$version/cfa-$version-foss-arm64-v8a-release.apk

# 使用curl下载最新发行版(-L意思是支持重定向,很多下载都是重定向下载  -o是自定义名字)
curl -L -o clash.apk $download_url

参考

chatGPT

csdn
https://blog.csdn.net/luyuyingyingying/article/details/126097169