我想编写一个脚本,打开一个 URL(不是完整的 URL 链接)并查找文件的最新可用版本。然后,它将从该目录向上一级,在该目录中找到某个文件并重复此过程,直到找到可下载的文件(可能循环进行)。该脚本将在无头机器上运行。
完整链接的示例为:
http://centos.bio.lmu.de/7/isos/x86_64/CentOS-7-x86_64-DVD-1511.iso
不完整的链接是:
http://centos.bio.lmu.de/
现在脚本必须找到最新的目录,也就是7/
进入该目录并查找/isos
并重复该操作,直到到达该文件CentOS-7-x86_64-DVD-1511.iso
。
由于我是编程和 bash 的新手,任何帮助都将不胜感激。
答案1
那这个呢?
#! /bin/bash
re='^[0-9.]+$' #regex to match digits and dots
VERSION_1=$( # variable for the CentOS version
lynx --dump http://centos.bio.lmu.de/ |grep "/$" | \
while read i
do
TMP_VERSION=`echo $i |awk -F "/" '{print $(NF-1)}'`
if [[ $TMP_VERSION =~ $re ]] ; then
echo $TMP_VERSION
fi
done | sort -t . |tail -1)
VERSION_2=$( #Variable for the ISO name
lynx --dump http://centos.bio.lmu.de/$VERSION_1/isos/x86_64/ |grep DVD| grep "\.iso$" |awk -F "/" '{print $NF}'| \
while read i
do
echo $i
done |tail -1
)
wget http://centos.bio.lmu.de/$VERSION_1/isos/x86_64/$VERSION_2