我想编写一个 bash 脚本来从 github repo 下载最新版本并将下载的 zip 解压到特定目录中。
从这个要点我可以下载 zip 文件。shell 脚本如下所示。
curl -s https://api.github.com/repos/kgns/weapons/releases/latest \
| grep browser_download_url \
| cut -d : -f 2,3 \
| tr -d \" \
| wget -qi -
这将从 repo 下载最新版本的 zip 文件。现在,我想将 zip 文件的内容提取到 中some/other/dir/
,替换旧版本中的现有文件。如果不知道下载的 zip 文件的名称(因为每个版本的名称都会变化),我该如何执行此操作?
最后,我还想通过删除我下载的 zip 文件进行清理。
答案1
我稍微重新格式化了您创建的内容,用单个 sed 替换了 cut 和 tr,以实现大致相同的结果。然后,为了方便起见,将这些输出保留在“$file”中...
$文件=“$( curl -s https://api.github.com/repos/kgns/weapons/releases/latest \ | grep 浏览器下载网址 \ | sed -re 's/.*: "([^"]+)".*/\1/' \ )” $ 回显 ${文件##*/} 武器-v1.7.5.zip
参考:
$ man bash
...man bash
显示后,输入一个/
开始搜索(q
退出、h
获取帮助)。
搜索
Parameter Expansion
和Command Substitution
(保留 CASE)以获取我所做工作的解释。
有关 bash 脚本的更多信息:
The Linux Documentation Project
https://www.tldp.org-> Bash 指南