Riadok skopírovaný zo súboru CRLF môže vyzerať ako proxy.example:8080, hoci premenná v skutočnosti končí znakom návratu vozíka. Uzavretie premennej do úvodzoviek tento znak zachová; neodstráni ho.

Pre súbor Bash obsahujúci jednu úplnú URL proxy na riadok:

target='https://api.example/'
while IFS= read -r proxy || [ -n "$proxy" ]; do
    proxy=${proxy%$'\r'}
    if [ -z "$proxy" ]; then
        continue
    fi
    curl --proxy "$proxy" --max-time 10 --url "$target"
done < ProxyList.txt

Používajte položky ako http://proxy.example:8080; zoznam HTTP proxy ponúka verejné adresy-kandidátov, ktoré tak možno naformátovať. read odstráni oddeľovač nového riadku; rozšírenie prípony odstráni jeden koncový CR, ak existuje. Podmienka tiež spracuje posledný neprázdny riadok bez nového riadku.

IFS= bráni deleniu polí počas read a -r zachováva doslovné spätné lomky. Dvojité úvodzovky potom odovzdajú výslednú URL ako jeden argument curl. Vyhnite sa iterovaniu cez výstup substitúcie príkazov: delenie slov v shelli môže zmeniť hranice záznamov súboru skôr, než ich curl uvidí.

Toto normalizuje konce riadkov. Neopravuje nesprávny protokol počúvania, chýbajúci koncový bod ani nedostupnú službu.

Súvisiace články