Розмістіть випадковий вибір усередині оболонки, що запускається для кожного завдання. Якщо розгорнути підстановку команди в зовнішній оболонці, значення буде вибрано ще до того, як xargs почне роботу.

З перевіреним proxies.txt, де в кожному рядку один URL проксі, публічні кандидати можуть братися зі списку безкоштовних проксі; оформлюйте кожен запис протоколом, який підтримує curl:

printf '%s\0' 'https://a.example/one' 'https://b.example/two' |
  xargs -0 -n 1 -P 4 sh -c '
    proxy=$(shuf -n 1 proxies.txt) || exit 1
    [ -n "$proxy" ] || exit 1
    curl --fail --silent --show-error --max-time 30 \
      --proxy "$proxy" --noproxy "" --output /dev/null "$1"
  ' _

-n 1 передає кожній команді один URL, а -P 4 дозволяє до чотирьох команд одночасно. Вхідні дані, розділені нулями, зберігають URL як один аргумент. Підкреслення займає позицію $0 у sh, залишаючи URL у $1.

Кожна дочірня оболонка запускає shuf незалежно. Випадковий вибір може взяти той самий проксі більше одного разу; це не кругове планування і не гарантія різних адрес виходу.

Явно порожній список обходу не дає успадкованому налаштуванню no_proxy обійти вибраного посередника. Приклад відкидає тіла відповідей; використовуйте окремі шляхи виводу, коли зберігаєте паралельні завантаження.

Схожі статті