我在一个 shell 脚本中有三个命令:wget
、7z
和rm
。
里面list.txt
URL1 archive_01.zip
URL2 archive_02.zip
URL2 archive_03.zip
下载档案:
while read -r url filename; do
wget -O "$filename" "$url";
done < list.txt
$ ls
archive_01.zip
archive_02.zip
archive_03.zip
提取档案:
for file in *zip; do
7z x $file;
done
$ ls
archive_01.zip
archive_02.zip
archive_03.zip
文件夹_01 文件夹
_02
文件夹_03
删除档案:
rm *zip
是否可以将这三个命令做成嵌套循环?如果可以,怎么做?
我也很好奇,因为上面的命令将像这样执行(如果我没记错的话):
下载 URL1 > 下载 URL2 > 下载 URL3
提取存档 1 > 提取存档 2 > 提取存档 2
删除存档 1 > 删除存档 2 > 删除存档 3
如何让执行变成这样?
下载 URL1 > 提取存档 1 > 删除存档 1
下载 URL2 > 提取存档 2 > 删除存档 2
下载 URL3 > 提取存档 3 > 删除存档 3
答案1
像这样的东西吗?
#! /bin/bash -
while read -r url filename; do
wget -O "$filename" "$url"
7z x "$filename"
rm -- "$filename"
done < list.txt
答案2
while read -r url filename; do
wget -O "$filename" "$url";
7z x $filename
rm $filename
done < list.txt
应该做你想做的事。