Posa la selecció aleatòria dins del shell que s'inicia per a cada tasca. Expandir una substitució de comanda al shell exterior tria el valor abans que xargs comenci la feina.

Amb un proxies.txt validat amb un URL de proxy per línia, els candidats públics poden venir de la llista de proxys gratuïts; formata cada entrada amb un protocol que curl admeti:

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 dona un URL a cada comanda, i -P 4 permet fins a quatre comandes alhora. L'entrada delimitada per nuls conserva l'URL com un sol argument. El guió baix ocupa la posició $0 de sh i deixa l'URL a $1.

Cada shell fill executa shuf de manera independent. La selecció aleatòria pot triar el mateix proxy més d'una vegada; no és una planificació circular ni una garantia d'adreces de sortida diferents.

La llista de bypass buida explícita evita que un paràmetre no_proxy heretat salti l'intermediari triat. L'exemple descarta els cossos de resposta; fes servir camins de sortida separats quan desis baixades simultànies.

Articles relacionats