如何遍历所有版本的URL

时间:2019-02-04 09:40:33

标签: bash shell

我有一个软件,该软件具有多个版本,可以从版本1升级到5。要升级,我们需要撤消版本2、3、4,最后是5。如何循环搜索所有版本?这是我的尝试:

#!/bin/bash
version=1
while [ wget --spider https://download.software/server/releases/latest-"$version".tar.bz2 2>/dev/null ]
do
   version=$((version+1))
   echo $i
done

2 个答案:

答案 0 :(得分:3)

您的问题是括号[][本身是命令。要循环检查wget的退出状态,只需使用while wget ...; do ...; done

但是,您根本不需要循环。 wget可以在一个呼叫中使用多个URL,而bash可以使用括号扩展{1..5}生成URL:

#! /bin/bash
wget https://download.software/server/releases/latest-{1..5}.tar.bz2

答案 1 :(得分:0)

@Socowi的答案很好,如果您想一次下载一个。如果您希望并行下载:

parallel -j0 wget https://download.software/server/releases/latest-{}.tar.bz2 ::: {1..5}