我有一个软件,该软件具有多个版本,可以从版本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
答案 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}