开发一个 Linux 命令行工具来跟踪和绘制 Covid-19 统计数据
于 2021 年 4 月 13 日

已经过去一年多了,我们仍然在生活的几乎每个方面与疫情作斗争。 感谢科技,我们有各种工具和机制来跟踪 Covid-19 相关的指标,这有助于我们做出明智的决定。 这篇入门级教程讨论了从头开始,仅在 Linux 命令行上开发这样一种工具。
我们将从介绍该工具最重要的部分开始——API和命令。 我们将为我们的工具使用 2 个 API - COVID19 API 和 Quickchart API 和 2 个关键命令 – curl 和 jq。 简单来说,curl 命令用于数据传输,jq 命令用于处理 JSON 数据。
完整的工具可以分解为 2 个关键步骤
1. 从 COVID19 API 获取(GET 请求)数据,并将 JSON 输出管道传输到 jq,以便仅处理全局数据(或类似地,特定国家/地区的数据)。
$ curl -s --location --request GET 'https://api.covid19api.com/summary' | jq -r '.Global' { "NewConfirmed": 561661, "TotalConfirmed": 136069313, "NewDeaths": 8077, "TotalDeaths": 2937292, "NewRecovered": 487901, "TotalRecovered": 77585186, "Date": "2021-04-13T02:28:22.158Z" }
2. 将步骤 1 的输出存储在变量中,并使用这些变量调用 Quickchart API,以绘制图表。 随后将 JSON 输出管道传输到 jq,以便仅过滤到我们图表的链接。
$ curl -s -X POST \ -H 'Content-Type: application/json' \ -d '{"chart": {"type": "bar", "data": {"labels": ["NewConfirmed ('''${newConf}''')", "TotalConfirmed ('''${totConf}''')", "NewDeaths ('''${newDeath}''')", "TotalDeaths ('''${totDeath}''')", "NewRecovered ('''${newRecover}''')", "TotalRecovered ('''${totRecover}''')"], "datasets": [{"label": "Global Covid-19 Stats ('''${datetime}''')", "data": ['''${newConf}''', '''${totConf}''', '''${newDeath}''', '''${totDeath}''', '''${newRecover}''', '''${totRecover}''']}]}}}' \ https://quickchart.io/chart/create | jq -r '.url' https://quickchart.io/chart/render/zf-be27ef29-4495-4e9a-9180-dbf76f485eaf
就是这样! 现在我们的数据绘制在图表中
最后,将所有内容组合在一个 shell 脚本中即可完成该工具。 这是下载和/或直接执行它的链接 - TrackAndPlotCovid19Stats
请注意,该工具还有很大的改进和增强空间,因此请随时进一步开发它。
保持健康!