我正在使用 curl 获取 URL,然后写入文件,如下所示:
urls=(
'https://www.example1.com'
'https://www.example2.com'
)
for i in ${urls[@]}; do
curl $i &
done
echo 'stuff'
我特意简化了代码,因此可以解决确切的问题。
输出:
stuff
$curlContents1
$curlContents2
我知道为什么会发生这种情况,它是异步运行的。
我想知道的
- 我想运行这个异步 cmd,其输出与我同步运行它时的输出相同。
- 这是因为异步运行它可以提高速度
期望的输出:
$curlContents1
$curlContents2
stuff
更多信息
- 我的实际问题有点不同……
我正在做的是下载视频,然后获取 URL 的最后一部分并将其用作文件名,parallel
在此示例中如何使用?
写入发生在下载之前,因为下载是最耗时的部分
arr=(
'https://www.example1.com/stccdtu.mp4’
'https://www.example2.com/dyubdf.mp4’
)
for i in ${arr[@]}; do
curl $i > `echo $i | sed s'#https://www.example[0-9].com/##'g` &
done
输出:
ll
0 stccdtu.mp4
0 dyubdf.mp4