CRLF-tiedostosta kopioitu rivi voi näyttää riviltä proxy.example:8080, vaikka muuttuja päättyy todellisuudessa vaununpalautukseen. Muuttujan lainaaminen säilyttää tämän merkin; se ei poista sitä.

Bash-tiedostolle, jossa on yksi täydellinen välityspalvelimen URL per rivi:

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

Käytä merkintöjä kuten http://proxy.example:8080; HTTP-välityspalvelinlista tarjoaa julkisia osoite-ehdokkaita muotoiltavaksi näin. read poistaa rivinvaihtoerottimen; jälkiliitteen laajennus poistaa yhden lopussa olevan CR:n, jos sellainen on. Ehto käsittelee myös viimeisen ei-tyhjän rivin ilman rivinvaihtoa.

IFS= estää kenttien jakamisen readin aikana, ja -r säilyttää kirjaimelliset kenoviivat. Sitten kaksoislainausmerkit välittävät tuloksena olevan URL:n yhtenä curl-argumenttina. Vältä toistamista komentosubstituution tulosteen yli: kuoren sanajako voi muuttaa tiedoston tietueiden rajoja ennen kuin curl näkee ne.

Tämä normalisoi rivinloput. Se ei korjaa väärää kuunteluprotokollaa, puuttuvaa päätepistettä tai tavoittamattomissa olevaa palvelua.

Aiheeseen liittyvät artikkelit