高手帮我看看这个并行下载脚本哪里有毛病
发表于 : 2019-08-04 8:31
写了一个脚本,目的是3个线程同时下载文件,代码如下
-------------------------------------------------------------------------------------------
#!/bin/bash
mkfifo fifo && exec 7<>fifo && rm fifo
for n in {1..3}
do
echo >&7
done
for i in {1..39}
do
{
read -u7
for j in {1..5}
do
echo $i file $j time
mkdir $$
./you-get/you-get `sed -n "$i"p urls` -o $$
if [ $? == 0 ]
then
break
mv $$/*mp4 .
rmdir $$
fi
echo >&7
done
}&
done
-------------------------------------------------------------------------------------------
其中,$i是要下载文件的数目,$j是重试次数,$n是线程数,
也就是说,
39个文件,5次重试,同时下载3个。
然而,实际的执行效果,是三个文件都下载到同一个目录里面,让他开启三个子进程,不要让他下到同一个目录里面。
谁会做,帮我看看。
-------------------------------------------------------------------------------------------
#!/bin/bash
mkfifo fifo && exec 7<>fifo && rm fifo
for n in {1..3}
do
echo >&7
done
for i in {1..39}
do
{
read -u7
for j in {1..5}
do
echo $i file $j time
mkdir $$
./you-get/you-get `sed -n "$i"p urls` -o $$
if [ $? == 0 ]
then
break
mv $$/*mp4 .
rmdir $$
fi
echo >&7
done
}&
done
-------------------------------------------------------------------------------------------
其中,$i是要下载文件的数目,$j是重试次数,$n是线程数,
也就是说,
39个文件,5次重试,同时下载3个。
然而,实际的执行效果,是三个文件都下载到同一个目录里面,让他开启三个子进程,不要让他下到同一个目录里面。
谁会做,帮我看看。