假设我正试图有效地下载一套50个课堂讲稿。这些笔记在大学网站的prof子目录中。第45节讲稿以pdf格式放在lect45子目录中,标题为lect45.pdf。我的第一份pdf如下:

curl -O http://www.university.edu/~prof/lect1/lect1.pdf

如何使用cURL和bash有效地获取所有50个音符?我试图通过命令行而不是通过Python/Ruby/Perl脚本来实现这一点。我知道像下面这样的东西会产生很多404:
curl -O http://www.university.edu/~prof/lect{1..50}/lect{1..50}.pdf

那么什么会更好呢?我想要一个优雅的一行超过一个循环。

最佳答案

分几个过程进行:

for i in {1..50}
do
    curl -O http://www.university.edu/~prof/lect$i/lect$i.pdf &
done

或者作为一行(只是不同的格式):
for i in {1..50}; do curl -O http://www.university.edu/~prof/lect$i/lect$i.pdf & done

&使所有进程并行运行。
不要害怕输出;shell告诉您已经启动了50个进程,这是一大堆垃圾邮件。稍后它会告诉你,他们每一个都终止了。又有很多产出。
你可能不想同时运行所有50个;-)
编辑:
你的例子使用两次{1..50}就构成了一个数字矩阵。例如,请参见echo {1..3}/{1..3}以了解我的意思。我想这样你就创造了很多404。

10-01 12:21