如何使用shell脚本从远程存储库下载最新文件?

时间:2015-04-11 08:20:34

标签: shell wget

我有一个存储版本构建的远程存储库。我想要做的是编写一个shell脚本来下载最新版本(.zip文件)。存储库网页如下所示:

1.0.0
  |---> 1.0.0.zip(link)

1.0.1
  |---> 1.0.1.zip(link)

1.0.2
  |---> 1.0.2.zip(link)

1.0.x是一个目录,其中包含一个zip文件。每天都会发布多个或不发布的版本。基本上我想构建一个像

这样的URL

http://path/to/file/1.0.x.zip

x会自动识别网页上的最新号码,以便wget易于使用。

1 个答案:

答案 0 :(得分:2)

你也许可以这样做:

#!/bin/bash

# base path to server
base="http://path/to/file/"
# get files contained in base dir
lynx -dump -listonly "${base}" | grep http | grep '1\.0\.[0-9]+\.zip' | awk '{print $2}' > .tmpfiles
# get latest version number (x)
version=$(awk -F'.' '{ print $3 }' .tmpfiles | sort | tail -n1)
# get filename of latest build
latest=$(grep "1.0.${version}" .tmpfiles)
# download latest file
wget -qO - "${base}${latest}" > .tmp.zip && unzip .tmp.zip

您可以轻松修改此项,以便将版本号作为参数传递给脚本。

但如果构建存储在FTP服务器上,那么你可以创建一个简单的FTP脚本。