本文以 docker-compose: Define and run multi-container applications with Docker 为例,展示利用 GitHub API 获取 Repo 中最新 Releases 的版本号。
代码
|
|
代码解释
主字段
|
|
以上为api获取到的部分json,我们需要获取 tag_name 的值
curl参数
- "--silent" 静默模式
- "--connect-timeout 10" 超时10s
- "--retry 1" 重试次数1
筛选参数
- grep "tag_name": grep 是 Linux 一个强大的文本搜索工具,在本代码中输出 tag_name 所在行,即输出 "tag_name": "v2.7.0",
- head -n 1: head -n用于显示输出的行数,考虑到某些项目可能存在多个不同版本的 tag_name,这里我们只要第一个。
- awk -F ":" '{print $2}': awk 主要用于文本分析,在这里指定:为分隔符,将该行切分成多列,并输出第二列。于是我们得到了(空格)"v2.7.0",
- sed 's/"//g;s/,//g;s/ //g': 在这里 sed 用于数据查找替换,如sed 's/要被取代的字串/新的字串/g' ,因此本段命令可分为 3 个,以分号分隔。s/"//g即将引号删除(反斜杠是为了防止引号被转义),以此类推,最终留下我们需要的内容:v2.7.0