Set det tilfeldige valet inne i skalet som blir starta for kvar jobb. Utvidar du ei kommandoutskifting i det ytre skalet, blir verdien vald før xargs byrjar arbeidet sitt.

Med ein validert proxies.txt med éin proxy-URL per linje kan offentlege kandidatar kome frå lista over gratis proxyar; formater kvar oppføring med ein protokoll som curl støttar:

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 gjev éin URL til kvar kommando, og -P 4 tillèt opptil fire kommandoar samstundes. Inndata skilde med null beheld URL-en som eitt argument. Understreken tek $0-posisjonen til sh og lèt URL-en bli i $1.

Kvart barneskal køyrer shuf sjølvstendig. Det tilfeldige valet kan velje same proxy meir enn éin gong; det er ikkje rundgangsplanlegging og inga garanti for ulike utgangsadresser.

Den uttrykkeleg tomme omgåingslista hindrar ei nedarva no_proxy-innstilling i å omgå den valde mellommannen. Dømet kastar svarlekamane; bruk separate utdatastiar når du lagrar samtidige nedlastingar.

Relaterte artiklar