Спасибо за shellter и напоминание UtLox, я обнаружил, что ключ xargs
.
Вот мой вывод, что интерпретатор shell / zsh разделяет sleep 5
и echo END: {}
как другой набор команд, поэтому xargs
не получил ожидаемые две встроенные команды &&
как одну утилитукоманду и замените {}
значением в выражении END
.Это может быть доказано xargs -t
.
cat urls.txt | xargs -I{} -t echo "BEGIN: {}" && sleep 1 && echo "END: {}"
Вдохновленный ответом UtLox, я обнаружил, что могу присоединиться к своему ожиданию с sh -c
в xargs
.
cat urls.txt | xargs -I{} -P 5 sh -c 'echo "BEGIN: {}" && sleep 1 && echo "END: {}"'
Для-P 5
, он заставляет команду утилиты запускаться с максимальным количеством указанных подпроцессов в параллельном режиме, чтобы использовать большинство ресурсов всей полосы.
Готово!