1

Используя терминал Bash, как я могу иметь 5 ± 2 одновременных процесса cURL, загружаемых в любой момент в сценарии, пока не останется больше ссылок?

псевдокод:

Links = {a.txt, b.txt, c.txt, d.txt ... x.txt, y.txt, z.txt}

Loop URLS in Links
    if (less than 5 cURL processes)
        cURL URL
    else
        wait until 1 cURL process stopped

1 ответ1

1

Попробуйте это как отправную точку (это не проверено)

#! /bin/bash
# LINKS is a list of space separated links use text below, otherwise
# replace first uncommented line below with
# for each in `cat $LINKS`

for each in $LINKS
do 
    count=`ps waux | grep "curl" | wc -l`
    until [ $count -gt 4 ]
    do
        count=`ps | grep "curl" | wc -l`
        sleep 1
    done

    curl $each &
    fi

done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .