Как создать бесконечный поток строк в bash

У меня около 10 ссылок в файле links.txt. Я загружаю их через

cat links.txt | xargs -i --max-procs=4 bash -c "wget {}" 

Мне бы хотелось сделать это многократно

 while : do cat links.txt | xargs -i --max-procs=4 bash -c "wget {}" done 

Перед следующей итерацией цикла while он ожидает завершения всех подпроцессов. Но я бы хотел продолжить загрузку (взять url с начала файла), когда есть доступный поток. Как это сделать? Может быть, я могу сделать бесконечную трубу струн?

  • Можете ли вы подключиться к функции .bash_profile?
  • xargs и vi - «Вход не от терминала»
  • Правильный синтаксис для использования awk в сочетании с другой командой внутри xargs sh -c
  • команда solaris + xargs для солярия
  • эхом basename под xargs?
  • Перемещение подкаталога в новый родительский каталог, где новое имя каталога увеличивается на 1
  • Что делает эта командная строка (`echo $ 1 | xargs -n 1 basename | cut -d '.' -f1`)?
  • Поиск строки в каталоге. Получить вывод без имени файла.
  • One Solution collect form web for “Как создать бесконечный поток строк в bash”

    Если ваше yes принимает строковый аргумент:

     yes links.txt | xargs cat | xargs -n1 --max-procs=4 wget 

    Нет смысла запускать один cat perl links.txt или один bash на ссылку (если вы не хотите, чтобы строки links.txt интерпретировались как код оболочки, например http://$host$path или http://evil;rm -rf / ).

    Если файл достаточно мал, вы также можете:

     yes -- "$(cat links.txt)" | xargs -n1 -P4 wget 
    Linux и Unix - лучшая ОС в мире.